我遇到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 ==?
答案 0 :(得分:1)
这些网站很糟糕,因为它们不会告诉您加密某些内容时实际发生的情况。在线加密下面的两个示例代码是不同的,并且与在线加密不同。
似乎this answer为该网站提供了C#的工作代码。如果这是真的,那么你不能在CryptoJS中重现这一点,因为CryptoJS只支持AES,而那个示例C#代码使用Rijndael(注意块大小为256位)。
AES仅定义为128位的固定块大小,但Rijndael支持128,192和256位块大小。两者都支持128,192和256位的密钥大小。 CryptoJS实际上只实现AES,但该站点尽管名称不使用AES。