(代码示例)使用crypto-js实现AES加密解密

bash 复制代码
npm install crypto-js
# 官方文档 <https://www.npmjs.com/package/crypto-js>

适用于需要检验的场景

  • 比如敏感的前端query参数
  • Cookie中的某个字段
  • 数据库中的敏感字段
js 复制代码
// ====================做成文件====================
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
}; 
相关推荐
前端不太难1 分钟前
RN 性能优化:列表滚动掉帧、卡顿怎么办?
前端·react native·性能优化
亿元程序员1 分钟前
祖传项目二开快上线了,却还有很多旧的资源,怎么办?
前端
GIS学姐嘉欣4 分钟前
0帧起手《Vue零基础教程》,从前端框架到GIS开发
前端·vue.js·前端框架·gis
麦麦在写代码7 分钟前
前端学习6(JS 1)
前端·javascript·学习
白帽子黑客杰哥16 分钟前
CTF Web题目常用考点与解题技巧合集
前端·数据库·web安全·网络安全·ctf·信息收集
许___18 分钟前
axios使用 CancelToken / AbortController 方法进行取消请求
前端·javascript
LYFlied24 分钟前
Webpack详细打包流程解析
前端·面试·webpack·node.js·打包·工程化
明朝百晓生26 分钟前
强化学习[page14]【chapter7】Temporal-Difference Learning (TD learning)
前端·html
我只会写Bug啊29 分钟前
B站/爱奇艺防录屏防截屏原理及Vue3实战实现
前端·软件开发