npm下载并引用crypoto 为其建立一个独立的js文件
import CryptoJS from 'crypto-js'
function getAesString(data, pkey, piv) { //加密
var key = CryptoJS.enc.Utf8.parse(pkey);
var iv = CryptoJS.enc.Utf8.parse(piv);
var encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString(); //返回的是base64格式的密文
}
function getDAesString(encrypted, pkey, piv) { //解密
var key = CryptoJS.enc.Utf8.parse(pkey);
var iv = CryptoJS.enc.Utf8.parse(piv);
var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
//导出方法
export default {
getLoginAES(data) {
var key = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'; //与后端约定好的密钥
var iv = '1234567812345678';
var encryptedLogin = getAesString(data, key, iv); //密文
return encryptedLogin;
},
decLoginAES(data) {
var key = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
var iv = '1234567812345678';
var decryptedStrLogin = getDAesString(data, key, iv);
return decryptedStrLogin;
}
}
使用
//引入文件
import aes from '../../utils/crypto-js'
//使用方法
let str = '哈哈哈哈'
console.log(aes.getLoginAES(str), '加密XXXXXXXXXXXXXXXXXXXXXXXX')
console.log(
aes.decLoginAES(aes.getLoginAES(str)),
'解密XXXXXXXXXXXXXXXXXXXXXXXX'
)
如果对你有帮助的话 记得点赞哦~