(代码示例)使用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
}; 
相关推荐
京东云开发者28 分钟前
全球首个!京东全栈开源JoyAI-VL-Interaction,让大模型从“一问一答”走向“边看边说”
前端
京东云开发者28 分钟前
正式上线!京东云AI智能渗透测试服务
前端
AprChell33 分钟前
低代码设计器和低代码设计引擎架构综述
前端·vue.js·低代码
Hilaku38 分钟前
Node.js 还能再战十年?给你一个不换引擎的理由
前端·javascript·程序员
颜进强1 小时前
AI性能参数-截断、延迟与流式输出
前端·后端·ai编程
spmcor1 小时前
React 架构师之路:Next.js 全栈革命(第八篇)
前端·react.js
英勇无比的消炎药1 小时前
TinyRobot 源码深度分析:OpenTiny 的 AI 对话组件库
前端·vue.js·github
假如让我当三天老蒯1 小时前
React基础、进阶(学习用)
前端·react.js·面试
风骏时光牛马1 小时前
HTML十大经典实战代码案例合集
前端
weedsfly1 小时前
前端必知必会:从 IIFE 到 ESM,模块化到底在解决什么?
前端·javascript