一 首先要安装相关依赖
npm install crypto-js --save-dev
二 在src文件夹下新建一个公用的js文件夹, 新建一个AES.js 文件
import CryptoJS from "crypto-js";
export default {
// 加密
encrypt(word, keyStr) {
keyStr = keyStr ? keyStr : "这里是秘钥";
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 : "这里是秘钥";
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();
}
};
三 需要使用的地方引入
import AES from "@/common/AES.js";
//如果是对象/数组的话,需要先JSON.stringify转换成字符串
var encrypts = AES.encrypt(JSON.stringify(cars));
var dess = JSON.parse(AES.decrypt(encrypts));
AES加密模式有五种,这里我是用的是ECB模式加密。 其中CBC模式下是和iv向量有关系的,ECB模式没有。需要注意的是加密后的结果是对象的话,需要转化为字符串(toString 或 + " ")