(代码示例)使用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
}; 
相关推荐
踢球的打工仔12 分钟前
typescript-类的访问权限public、private、protected
前端·javascript·typescript
Ulyanov17 分钟前
Impress.js深度解析
开发语言·前端·javascript·css3·impress.js
我叫Double1 小时前
GeneralAdmin-3
前端·javascript·vue.js
Charlie_lll1 小时前
学习Three.js–太阳系星球自转公转
前端·three.js
json{shen:"jing"}1 小时前
10_自定义事件组件交互
开发语言·前端·javascript
Jinuss1 小时前
源码分析之React中scheduleUpdateOnFiber调度更新解析
前端·javascript·react.js
一位搞嵌入式的 genius1 小时前
深入理解 JavaScript 异步编程:从 Event Loop 到 Promise
开发语言·前端·javascript
m0_564914921 小时前
Altium Designer,AD如何修改原理图右下角图纸标题栏?如何自定义标题栏?自定义原理图模版的使用方法
java·服务器·前端
方安乐1 小时前
react笔记之useCallback
前端·笔记·react.js
小二·2 小时前
Python Web 开发进阶实战:AI 伦理审计平台 —— 在 Flask + Vue 中构建算法偏见检测与公平性评估系统
前端·人工智能·python