AES加密
// 获取非对称私钥
handlePublicKey() {
getPublicKey().then((res) => {
this.publicKey = res;
});
},
// 获取对称密钥
handleSymmetricKey() {
getSymmetricKey().then((res) => {
this.loginForm.symmetricKey = res;
});
},
// RSA加密
encryptRSA(password, pub_key) {
let enc = new JSEncrypt(); // 声明一个新的JSEncrypt对象
enc.setPublicKey(pub_key); // 配置公钥
return enc.encrypt(password); // 加密
},
```// AES加密
encrypt(word, keyStr) {
// keyStr = keyStr ? keyStr : "absoietlj32fai12";
let key = CryptoJS.enc.Utf8.parse(keyStr);
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
},
// 解密
decrypt(word, keyStr) {
keyStr = keyStr ? keyStr : "absoietlj32fai12";
var key = CryptoJS.enc.Utf8.parse(keyStr);
var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
点击登录
// RSA加密
let RSApublicKeyData = this.encryptRSA(
this.loginForm.passwords,
this.publicKey
);
// AES加密
let AESPassword = this.encrypt(
RSApublicKeyData,
this.loginForm.symmetricKey
);