【发布时间】:2022-09-27 20:24:16
【问题描述】:
我有以下密钥可以将 erUF9SRCNQZPCBezVGzYYnUVgwAKZTvXzS5Zhgw6B/4= 解密为 \"54545fwfwefweffvfdv\",我尝试搜索类似的问题,但由于缺乏加密知识,我无法自己解决这个问题。
function getDecryptedCode() {
var key = CryptoJS.enc.Utf8.parse(\'JM@q@MM8AAxVV\');
var iv = CryptoJS.enc.Utf8.parse(\'\');
var ciphertext = CryptoJS.enc.Base64.parse(\"erUF9SRCNQZPCBezVGzYYnUVgwAKZTvXzS5Zhgw6B/4=\");
var encryptedCP = CryptoJS.lib.CipherParams.create({
ciphertext: ciphertext,
formatter: CryptoJS.format.OpenSSL
});
var decryptedWA = CryptoJS.AES.decrypt(encryptedCP, key, {
iv: iv
});
var decryptedUtf8 = decryptedWA.toString(CryptoJS.enc.Utf8);
return decryptedUtf8;
}
console.log(getDecryptedCode());
-
这里有什么问题?
-
他们不解密数据并返回空值!
-
对于 CBC 模式下的 AES,您需要相同的密钥和 IV 进行加密和解密。你的 IV 是空的,所以它不能工作。数据是用 CryptoJS 还是其他框架加密的?
-
您的数据不一致:AES 不允许使用 13 字节的密钥。也可以排除将密钥材料解释为密码短语,因为密文必须以
U2FsdGVkX1开头(因为 CryptoJS 的内置 KDF 以 Base64 编码的 OpenSSL 格式返回密文,该格式以 ASCII 编码开头Salted__)。 -
用另一个框架加密的数据
标签: javascript reactjs encryption cryptojs