/**
* AES解密
* @param {String} originalCiphertext 原始密文
* @param {String} originalKey 原始秘钥
*/
aesDecrypt(originalCiphertext,originalKey) {
// 使用 crypto-js
//解密 1.使用 SHA-256 生成哈希后的密钥, 2.密文、iv 经过Base64加密,确保iv 16字节 3.解密模式CBC、Pkcs7填充
const hashedKey = CryptoJS.SHA256(originalKey); // 使用 SHA-256 生成哈希后的密钥
const ciphertextBase64 = CryptoJS.enc.Base64.parse(originalCiphertext) // 解析 Base64 编码的密文为 WordArray 对象
const iv = CryptoJS.lib.WordArray.create(ciphertextBase64.words.slice(0, 4)) // 提取 IV(前 16 字节,即 4 个 Word,因为每个 Word 是 4 字节)
const ciphertext = CryptoJS.lib.WordArray.create(ciphertextBase64.words.slice(4)) // 提取实际的密文部分(从第 5 个 Word 开始)
// 解密
const decryptedBytes = CryptoJS.AES.decrypt({
ciphertext: ciphertext
}, hashedKey, {
iv:iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
const decryptedText = decryptedBytes.toString(CryptoJS.enc.Utf8);// 将解密后的数据转换为字符串
console.log(decryptedText); // 打印解密后的文本
},
AES解密
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 客户名称 某大型休闲会所 数据类型 sybase ASA 数据容量 220 MB 故障类型 断电导致数据库异常 无...
- 背景:工作需要,部分数据进行了加密传输,对方使用了AES对密码进行了加密,需要获取到解密的数据。目标:通过密钥成功...