Commit 09ce0d2f authored by 杨硕's avatar 杨硕

小程序登录

parent f888e78b
import WxmpRsa from 'wxmp-rsa';
//公钥和私钥换自己的
// 定义公钥
const publicKey = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu6EsPHTuCzwyZ7D0/OhW\n' +
'QDQdB9tByC0vDnb7k7gmT0h77/mmJYcwvuqUdj+PXKO+V1NlJJqlf61UjcQkWD9o\n' +
'K6M1MHLHlS1qWXeXGaETClNUXAhdw2IkdBouXSHxyDkXYIDINYlOd91chxEBuBac\n' +
'igJI0c5p9BA62QcOKDUE2mDJL+LOd70NCYsJf3um1IAgfKDX8RH2H3aPxy/BJ8aS\n' +
'Edu+M9YDWsF6VFpaBr/WPPdouuPPjfs5203PCbvp0pvco+05JNDSiurEFcL+VDMm\n' +
'wFNKExmeCvn/zr+UIkRPWHwxfJq+/gw/lt+UzBO2NURhCv4pQZy19vdFLLLeMM09\n' +
'ewIDAQAB'
const publicKey1 = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzr+ftfseJxl3XDuf" +
"RwqrfWrbAWWtovyc3C826VxW9hsN0fplHIdCytUe7m7qf5EHYSSXX/7vyAzui0i/QFtn5umD7DM3QAXQN9yXxqdXQyWG6p" +
"FuRC8nh63TgGuL4m79zvHRcmKT3kyNKfWeZS+kw/sT9KxuXuC4E7FcPeGnmQam901aAOGPNwmaIMaFmLmy4nlUnTPbscbS" +
"qpMhMERk00QMG3Vd6SJ65ch2Xr7x73I3SIwNOq8TJby/c3yB4Q38nOeJbjbiV99fo6HYqKr11/jsALjHANCO/4hkAkLqGhT" +
"jAnBB2EYcGU6ruf4iKDuyek5gl8N/Klt8IkP6eVbMcQIDAQAB"
// 定义私钥
const passwordPublicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
'2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
const passwordPrivateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOv5+1+x4nG" +
"XdcO59HCqt9atsBZa2i/JzcLzbpXFb2Gw3R+mUch0LK1R7ubup/kQdhJJdf/u/IDO6LSL9AW2fm6YPsMzdABdA33JfGp1d" +
"DJYbqkW5ELyeHrdOAa4vibv3O8dFyYpPeTI0p9Z5lL6TD+xP0rG5e4LgTsVw94aeZBqb3TVoA4Y83CZogxoWYubLieVSdM" +
"9uxxtKqkyEwRGTTRAwbdV3pInrlyHZevvHvcjdIjA06rxMlvL9zfIHhDfyc54luNuJX31+jodioqvXX+OwAuMcA0I7/iGQ" +
"CQuoaFOMCcEHYRhwZTqu5/iIoO7J6TmCXw38qW3wiQ/p5VsxxAgMBAAECggEAA+8Te+P2U+ohIkkkI7bpQm6pEiK8JhDGb" +
"04armAKa45iOe+Ywu0z8SYS+5hyr9Czoj6O/s2cBGNymoXc1b2ngXZKA1GKKJazuoxg+u+uMmHhak8wGO4Iw4UkNBpXxAw" +
"2mhxxzspfY+hy+yxoQiag7PW3EH3Db9y4w+8pAShtBvVXqQRqeDbSadhhpnhpekd/NGcDWlZP+Sce3lNbDslMdKCx2ucdO" +
"lqfjDo6EsRknqvXS0rpVQyeYFG4iv5i60p1a5YCntXJQgkZgsZME1jb8j6c65x+Hc8/1EkuutRH8T8jdJc3iqcM4rwz983" +
"1XB0LwktCv8FzWGq+O+ouoELFwQKBgQD54dqHgjvmIQqjKvc634IwMASyKTUg7TZ2YLvcpzzjM26VkBMj3s95yqMVjFMTv" +
"rQu5NbBmiAr2zjnqYXd40W91BjJhC/RyWLR1Nvpf/gefojzhjLO6S1PQUAJ6hQzgzJejnG8OaiDLnCfrxBm9uk9wPHdyUd" +
"KCwws1k2uy1aHmQKBgQDTz22XCSjrQi0NxzIMYL2sL9hAdOKKbbSxZLAu80w60ECG2F/xELgHS6Qv9qmU40CbJXZY+rEZm" +
"bzxTcaeuFDS/x8umUObXv2SJQkYfu9XotE+2RQWaeKNpQd56ZQsusthZ1VVZxCn8qZ5QcHDzNnFIQe3W6+Ci3sb1qeOuC8" +
"SmQKBgCeS0DQDuQ7CDtg2dr75JLoS8LtycTqMtsJaoYXZangk7g97qLxWjg8gu2EvPvzyh8Chdy1kBlJLvqBZpZy1YJcmn" +
"uJTL+uOdDr89fLt1FKoAXJnv2YrYYSatdScIKTj0zdMYdDIZNqZoTZ42CUmV1vzUZqpRMQCKeRz8AuNol+JAoGBAKvU2JQ" +
"yEycgLYrC8eBGzzkUK3zHFk21CGTtSV0dddc0wVRjzxmzNYh9nfpnQlYOMohq0OMIpYoeRcEBFsQGxVMXM4XLQqSWYGIid" +
"4mO2L6g0N4Kn5g7WFcO7czCaLoM5BfmC71X+pQ1b0ZpyTb+RiD9VdQzpmPiogIIlzBaTZ3pAoGAK9eRtXRE0no6T2hH/6l" +
"0U0j9b9PsIQc7ufliGFDiM1cLQreeLYeRVPe2HkUeym9zaZiLRME16rvBYc0As+0OeSi2pIsm9pkqQ4xzKpx1dDqltY2o6" +
"+axwmA5nesaYRzH2bOC47XGfWe6F0wnI/ZkpcAZ2mXawKREsQW9d/+xtF0="
//公钥加密
export function encrypt(data) {
const json = JSON.stringify(data)
const encryptor = new WxmpRsa()
encryptor.setPublicKey(publicKey1)
return encryptor.encrypt(json)
}
//加密
export function encryptData(data) {
const encryptor = new WxmpRsa();
encryptor.setPublicKey(publicKey1);
return encryptor.encryptLong(data);
}
//解密
export function decryptData(encryptedData) {
const decryptor = new WxmpRsa();
decryptor.setPrivateKey(passwordPrivateKey);
return decryptor.decryptLong(encryptedData);
}
\ No newline at end of file
import { JSEncrypt } from 'jsencrypt'
// import JSEncrypt from 'jsencrypt/bin/jsencrypt'
// key 是 加密公钥,我是登录的时候获取
const key = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu6EsPHTuCzwyZ7D0/OhW\n' +
'QDQdB9tByC0vDnb7k7gmT0h77/mmJYcwvuqUdj+PXKO+V1NlJJqlf61UjcQkWD9o\n' +
'K6M1MHLHlS1qWXeXGaETClNUXAhdw2IkdBouXSHxyDkXYIDINYlOd91chxEBuBac\n' +
'igJI0c5p9BA62QcOKDUE2mDJL+LOd70NCYsJf3um1IAgfKDX8RH2H3aPxy/BJ8aS\n' +
'Edu+M9YDWsF6VFpaBr/WPPdouuPPjfs5203PCbvp0pvco+05JNDSiurEFcL+VDMm\n' +
'wFNKExmeCvn/zr+UIkRPWHwxfJq+/gw/lt+UzBO2NURhCv4pQZy19vdFLLLeMM09\n' +
'ewIDAQAB'
// 加密
export function rsaEncrypt (data) {
const json = JSON.stringify(data)
const encryptor = new JSEncrypt()
encryptor.setPublicKey(key)
return encryptor.encrypt(json)
}
// 解密私钥
const privateKey = ``
// 解密
export function rsaDecrypt (msg) {
const decrypt = new JSEncrypt()
decrypt.setPrivateKey(privateKey)
const decryptMsg = decrypt.decrypt(msg)
return decryptMsg
}
import CryptoJS from 'crypto-js'
// 默认的 KEY 与 iv 如果没有给
const KEY = CryptoJS.enc.Utf8.parse("1234567890123456");
const IV = CryptoJS.enc.Utf8.parse('1234567890123456');
/**
* AES加密 :字符串 key iv 返回base64
*/
export function Encrypt(word, keyStr, ivStr) {
let key = KEY;
let iv = IV;
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}
/**
* AES 解密 :字符串 key iv 返回base64
*
* @return {string}
*/
export function Decrypt(word, keyStr, ivStr) {
let key = KEY;
let iv = IV;
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let base64 = CryptoJS.enc.Base64.parse(word);
let src = CryptoJS.enc.Base64.stringify(base64);
let decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment