kuaiying_wx/utils/aes.js

35 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2025-03-04 15:25:38 +08:00
// 引入加密包(注意存放的路径)
const Crypto = require('./crypto');
// 秘钥,转换成utf8格式字符串用于加密解密一般长度是16位由后端提供
const key = Crypto.enc.Utf8.parse('qw5w6SFE2D1jmxyd')
// 偏移量转换成utf8格式字符串一般长度是16位(由后端提供)
const iv = Crypto.enc.Utf8.parse('345GDFED433223DF')
// 解密使用CBC模式
export function Decrtpt(value) {
// 使用外部包中的AES的解密方法
// value(解密内容)、key(密钥)
let decrypt = Crypto.AES.decrypt(value, key, {
iv, // 偏移量
mode: Crypto.mode.CBC, // 模式(五种加密模式,各有优缺)
padding: Crypto.pad.Pkcs7 // 填充
})
// 转成utf8格式字符串并返回出去
let decryptedStr = decrypt.toString(Crypto.enc.Utf8)
return decryptedStr
}
//加密使用CBC模式
export function Encrypt(value) {
// 使用外部包中的AES的加密方法
// value(加密内容)、key(密钥)
let encrypt = Crypto.AES.encrypt(value, key, {
iv, // 偏移量
mode: Crypto.mode.CBC, // 模式(五种加密模式)
padding: Crypto.pad.Pkcs7 // 填充
})
// 将加密的内容转成字符串返回出去
return encrypt.toString()
}