npm install crypto-js
# 官方文档 <https://www.npmjs.com/package/crypto-js>
适用于需要检验的场景
- 比如敏感的前端query参数
- Cookie中的某个字段
- 数据库中的敏感字段
// ====================做成文件====================
const CryptoJS = require("crypto-js");
// 秘钥
const aesKey = "59abbe5e10adf20f883ec3949ba6e057";
// 将秘钥转换成Utf8字节数组
const key = CryptoJS.enc.Utf8.parse(aesKey);
// 加密参数
const option = {
iv: CryptoJS.enc.Utf8.parse(aesKey.substr(0, 16)),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
};
/** data 是要 加密的数据 */
export function enCode(data) {
const encrypt = CryptoJS.AES.encrypt(JSON.stringify(data), key, option);
return encrypt.toString(); // 加密之后的字符串 A。一旦A修改了,那么解密就会失败。
}
/** codeStr 是要 解密的字符串 A */
export function deCode(codeStr) {
const decrypt = CryptoJS.AES.decrypt(codeStr, key, option);
return JSON.parse(decrypt.toString(CryptoJS.enc.Utf8)); //解密后的数据
}
// ================================================
// 测试数据
const data = {
name: "张三",
sex: '男',
height: 180
};