如何使用已知的KEY和IV使用Javascript解密AES

How to decrypt AES with a known KEY and IV using Javascript?

本文关键字:使用 IV Javascript 解密 AES KEY 何使用      更新时间:2023-09-26

我正在尝试使用https://code.google.com/p/crypto-js/它展示了如何使用AES加密,但没有展示如何使用KEY和IV进行解密。我正在看下面的代码。

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
var iv  = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });

我已经尝试了以下代码:

var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv });

然而,它给了我错误的纯文本。有人知道我做错了什么吗?

我收到的输出是:

4d657373616765

正确的纯文本显然应该是:

Message

我是不是误解了什么?

ASCII;-)http://www.italysoft.com/utility/converters/asciifull.gif

输出为二进制ASCII字符。

4d=M65=e

等等。。。

正如hotips所说,它是ASCII的十六进制,CryptoJS有内置编码器。你可以通过以下方式将其字符串发送到Utf8:

var utf8Decrypted = CryptoJS.enc.Utf8.stringify(decrypted);

有关其他编码器,请参阅:

CryptoJS编码器