javascript - Crypto-JS 中的解密给出数字十六进制输出而不是原始明文字符串

标签 javascript cryptojs

我使用 Crypto-JS source site at Google code 中的示例进行了简单测试:

在页眉中:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>

在 Javascript 函数中:

var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");

alert('encrypted: '+encrypted+'  decrypted: '+decrypted);

但是输出是:

encrypted: U2FsdGVkX19hsNqFBS5xcUoVBCu/hPHepEwZchqnUVU=
decrypted: 4d657373616765

image of decrypted output

我错过了什么?

最佳答案

decrypted.toString(CryptoJS.enc.Utf8) // "Message"

参见 https://code.google.com/p/crypto-js/#The_Hasher_Output

The hash you get back isn't a string yet. It's a WordArray object. When you use a WordArray object in a string context, it's automatically converted to a hex string.

You can convert a WordArray object to other formats by explicitly calling the toString method and passing an encoder.

关于javascript - Crypto-JS 中的解密给出数字十六进制输出而不是原始明文字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259009/

相关文章:

javascript - CryptoJS : key. 钳位不是函数

javascript - 如何在浏览器中使用 Javascript 加密/解密任意二进制文件?

javascript - 如何在 NextJs 中生成 UUID?

javascript - 在 PHP openssl 中加密并在 javascript CryptoJS 中解密

javascript - 如何执行作为参数传递的 JQuery 匿名函数?

javascript - 使用 Suspense 创建组件时如何使 useRef 不为空

javascript - 将 KML 文件添加到 leaflet-draw DrawItems

javascript - CryptoJS PBKDF2 和盐哈希方法不起作用

javascript - Angular 2 访问 REST API 错误 - 没有 Http 提供程序

svg 中的 javascript 奇怪行为