直接上代码
AES256 加密
/*
功能: 加密
参数:
data: 16进制字符串
iv: 16进制初始向量, 一般为8字节
key: 16进制字符串, AES256 对应 32 字节
*/
const encrypt = (data, iv, key) => {
//将16字符串,转为js word
let hexData = CryptoJS.enc.Hex.parse(data);
let hexKey = CryptoJS.enc.Hex.parse(key);
let hexIv = CryptoJS.enc.Hex.parse(iv);
let encrypted = CryptoJS.AES.encrypt(hexData, hexKey, {
? ? ? ? iv: hexIv,
? ? ? ? mode: CryptoJS.mode.OFB,
? ? ? ? padding: CryptoJS.pad.NoPadding,
? ? ? });
//返回16进制字符串
return encrypted.ciphertext.toString().toUpperCase();
}
/*
功能: 解密
data: 需要解密 16进制字符串
iv: 16进制初始向量, 一般为8字节
key: 16进制字符串, AES256 对应 32 字节
*/
const decrypt = (data, iv, key) => {
//将16字符串,转为js word
let hexData = CryptoJS.enc.Hex.parse(data);
let hexKey = CryptoJS.enc.Hex.parse(key);
let hexIv = CryptoJS.enc.Hex.parse(iv);
let decrypted = CryptoJS.AES.decrypt(
{
ciphertext: hexData,
}
, hexKey, {
? ? ? ? iv: hexIv,
? ? ? ? mode: CryptoJS.mode.OFB,
? ? ? ? padding: CryptoJS.pad.NoPadding,
? ? ? });
//返回16进制字符串
return decrypted.toString();
}
/** ?* ┏┓ ┏┓+ + ?* ┏┛┻━━━┛┻┓ + + ?* ┃ ┃ ?* ┃ ━ ┃ ++ + + + ?* ?████━████ ┃+ ?* ┃ ┃ + ?* ┃ ┻ ┃ ?* ┃ ┃ + + ?* ┗━┓ ┏━┛ ?* ┃ ┃ ?* ┃ ┃ + + + + ?* ┃ ┃ Code is far away from bug with the animal protecting ?* ┃ ┃ + 神兽保佑,代码无bug ?* ┃ ┃ ?* ┃ ┃ + ?* ┃ ? ┗━━━┓ + + ?* ┃ ┣┓ ?* ┃ ┏┛ ?* ┗┓┓┏━┳┓┏┛ + + + + ?* ┃┫┫ ┃┫┫ ?* ┗┻┛ ┗┻┛+ + + + ?* ?* @author chenxi ?* @date 2022年3月14日15:19:19 ?*/ ?
|