0.安装依赖
打开项目目录下cmd,输入:
1.新建加解密规则
在vue项目src目录下新建common文件夹,在文件夹中新建AES.js文件
AES.js
import CryptoJS from 'crypto-js';
export default {
//随机生成指定数量的16进制key
generatekey(num) {
let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let key = "";
for (var i = 0; i < num; i++) {
let randomPoz = Math.floor(Math.random() * library.length);
key += library.substring(randomPoz, randomPoz + 1);
}
return key;
},
//加密
encrypt(word, keyStr) {
keyStr = keyStr || 'abcdsxyzhkj12345'; //判断是否存在ksy,不存在就用定义好的key
var key = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
},
//解密
decrypt(word, keyStr) {
keyStr = keyStr || 'abcdsxyzhkj12345';
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();
}
2.调用
首先在页面中引入AES,
import AES from '../common/AES.js'
具体使用:
var encrypts = AES.encrypt(JSON.stringify('testusername'));
var decrypts = JSON.parse(AES.decrypt(encrypts));
console.log(encrypts) // 打印加密结果
console.log(decrypts) // 打印解密结果
var encrypts1 = AES.encrypt(JSON.stringify('testusername'),'abcd202207abhtml'); //指定加密秘钥
var decrypts1 = JSON.parse(AES.decrypt(encrypts1,'abcd202207abhtml')); //指定解密秘钥