javascript - CryptoJS AES 加密输出不匹配

标签 javascript encryption aes cryptojs

我在使用 CryptoJS 时遇到问题。

我尝试加密字符串,但它给出了不同的输出。

字符串:“测试消息” key :“123456”

这是我尝试运行的测试代码

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
   var encrypted = CryptoJS.AES.encrypt("test message", "123456");


   alert(encrypted);              //U2FsdGVkX19Nf4gjPS3MUcbKBD10P/Ty/4EwUF1PMhc=
</script>

它返回输出 U2FsdGVkX19Nf4gjPS3MUcbKBD10P/Ty/4EwUF1PMhc=

但在这个网站 http://aesencryption.net/ 中,我得到 fulfuBaIGS0AqxwyXoPCgw== 作为结果。

如何使用 CryptoJS 生成加密输出 fulfuBaIGS0AqxwyXoPCgw==?

最佳答案

这些网站很糟糕,因为它们不会告诉您加密某些内容时实际发生的情况。在线加密下面的两个示例代码是不同的,并且不会产生与在线加密相同的结果。

看来this answer为该站点提供 C# 工作代码。如果这是真的,那么您无法在 CryptoJS 中重现这一点,因为 CryptoJS 仅支持 AES,而该示例 C# 代码使用 Rijndael(请注意 256 位的 block 大小)。

AES 仅定义为 128 位的固定 block 大小,但 Rijndael 支持 128、192 和 256 位 block 大小。两者都支持 128、192 和 256 位的 key 大小。 CryptoJS 实际上只实现了 AES,但该网站尽管名称如此,但并未使用 AES。

关于javascript - CryptoJS AES 加密输出不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31954441/

相关文章:

javascript - 在Vue中维护关联对象

javascript - 克隆 javascript 事件对象

javascript - 在javascript中如何调用另一个函数 block 中的函数?

java - 直接编码/解码不会产生原始数据

linux - encfs解密,文件名编码 'nameio/block' 4.0.0不支持

java - 解密使用 Java AESBouncyCaSTLe 创建的 MySQL 字段

javascript - 了解用于 Web 开发的 Eclipse 项目性质和工作流程

java - 如何在 C# 中使用 PFX 证书签署请求?

mysql - AES_Decrypt() 返回空值

java - 从整数到整数的 AES 加密