/**
* 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对密码进行了加密,需要获取到解密的数据。目标:通过密钥成功...
- 来源:微信小程序联盟 如果大家使用小程序的同时还在使用公众号的话,可能会用到unionId这种功能,由于公司业务需...