加密及解密代码
首先下载需要的npm包,可执行以下命令下载
npm install crypto-js --save-dev
npm install js-md5 --save-dev
AesUtil.js
let CryptoJS = require("crypto-js")
let MD5 = require("crypto-js/md5")
const IV = '0102030405060708'
// 加密方法
export function Encrypt (data, key) {
key = CryptoJS.enc.Utf8.parse(MD5(key))
let iv = CryptoJS.enc.Utf8.parse(IV)
let encrypted = ''
if (typeof (data) === "string") {
encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
} else if (typeof (data) === "object") {
data = JSON.stringify(data)
encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
}
return encrypted.toString()
}
// 解密方法
export function Decrypt (data, key) {
key = CryptoJS.enc.Utf8.parse(MD5(key))
let iv = CryptoJS.enc.Utf8.parse(IV)
let decrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
let decryptedStr = decrypted.toString(CryptoJS.enc.Utf8)
return decryptedStr.toString()
}
具体调用如下:
import { Encrypt, Decrypt } from 'xxx/AesUtil.js'(xxx代表文件路径)
let obj = {
"name": 'aa',
"age": 12
}
let enstr = Encrypt(obj, 'info')
console.log(enstr)
let destr = Decrypt(enstr, 'info')
conosle.log(destr )

该博客介绍了如何使用npm包crypto-js和js-md5进行AES加密和解密操作。在JavaScript中,通过MD5对密钥进行处理,然后利用CBC模式和PKCS7填充进行加密。加密和解密的方法分别导出,可用于字符串和对象类型的数据。示例代码展示了如何导入和调用这些方法进行实际操作。
6333

被折叠的 条评论
为什么被折叠?



