1 回答

TA贡献1859条经验 获得超6个赞
由于可以更好地显示必要的代码,因此我使用的是答案,而不是您应该考虑的代码行的注释。
来自文档(此代码适用于默认的 AES CBC 模式) https://cryptojs.gitbook.io/docs/#custom-key-and-iv
custom-key-and-iv
var key = CryptoJS.enc.Hex.parse("000102030405060708090a0b0c0d0e0f");
var iv = CryptoJS.enc.Hex.parse("101112131415161718191a1b1c1d1e1f");
var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });
安全警告:请注意,ECB 模式是不安全的。
编辑-回答您的问题:
我如何知道该字符串确实经过 Base64 加密(位于前端(浏览器))?使用默认输出(由“返回加密消息”产生)与 OpenSSL 兼容,即base64编码。
为什么字符串 2(b64words) 不是字符串 1 的子字符串?因为它是双重 Base64 编码,并且字符串看起来不同。
为什么我能够使用 CryptoJS 解密字符串 1,但无法成功解密字符串 2(b64words)?如果您首先对字符串编号 2 进行 Base64 解码并将结果提供给解密函数,则您将成功获得字符串编号 2。
添加回答
举报