const CryptoJS = require("crypto-js");
/**
* 加密方法
* @param key 加密key
* @param iv 向量
* @param data 需要加密的数据
* @returns string
*/
const encrypt = function(key, iv, data) {
key = CryptoJS.enc.Utf8.parse(key)
iv = CryptoJS.enc.Utf8.parse(iv)
data = CryptoJS.enc.Utf8.parse(data)
const option = {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
return CryptoJS.AES.encrypt(data, key, option).ciphertext.toString();
};
/**
* 解密方法
* @param key 解密的key
* @param iv 向量
* @param data 密文
* @returns string
*/
const decrypt = function(key, iv, data) {
key = CryptoJS.enc.Utf8.parse(key)
iv = CryptoJS.enc.Utf8.parse(iv)
data = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(data));
const option = {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}
return CryptoJS.AES.decrypt(data, key, option).toString(CryptoJS.enc.Utf8);
}
export default {
encrypt,
decrypt
}
Crypto-JS AES-128-CBC-PKCS7 加密 解密
于 2022-05-12 15:06:00 首次发布