CryptoJS AES加密输出不匹配

时间:2015-08-12 01:06:28

标签: javascript encryption aes cryptojs

我遇到CryptoJS问题。

我尝试加密一个字符串,但它提供了不同的输出。

字符串:“测试消息” 关键:“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 ==?

1 个答案:

答案 0 :(得分:1)

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

似乎this answer为该网站提供了C#的工作代码。如果这是真的,那么你不能在CryptoJS中重现这一点,因为CryptoJS只支持AES,而那个示例C#代码使用Rijndael(注意块大小为256位)。

AES仅定义为128位的固定块大小,但Rijndael支持128,192和256位块大小。两者都支持128,192和256位的密钥大小。 CryptoJS实际上只实现AES,但该站点尽管名称不使用AES。