本文用的加密规则
算法:AES
模式:ECB
密钥:自己填
补码方式:PKCS5Padding/PKCS7Padding
初始向量:ECB 模式不需要
加密结果编码方式:Hex
复制可用的代码
const CryptoJS = require('crypto-js');
const key = '1234567812345678'; // 密钥,根据实际项目修改
// 加密。word字段是传入要加密的信息
exports.encrypt = (word, keyStr) => {
keyStr = keyStr ? keyStr : key;
let key = CryptoJS.enc.Utf8.parse(keyStr);
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB, // ECB模式
padding: CryptoJS.pad.Pkcs7, // 补码方式:PKCS5Padding和PKCS7Padding是一样的
});
var hexStr = encrypted.ciphertext.toString().toUpperCase(); // 输出Hex
return hexStr;
}
// 解密
exports.decrypt = (word, keyStr) => {
keyStr = keyStr ? keyStr : key;
let key = CryptoJS.enc.Utf8.parse(keyStr);
let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
let decrypt = CryptoJS.AES.decrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}