Javascript CryptoJS.AES.DecryptoJS失败原因?

Javascript CryptoJS.AES.DecryptoJS失败原因?,javascript,encryption,cryptojs,Javascript,Encryption,Cryptojs,CryptoJS.AES.decrypt函数返回一个空字数组 我的参数是secret、key和iv。密钥是一个256位的字数组,已确认正确;iv是一个128位的字数组,也已确认正确 使用php的openssl\u encrypt()对密码进行加密-明文为32字节-结果为48字节(因此似乎填充正确) 我曾尝试将secret作为WordArray、Hex字符串和base64字符串,但调用时: var decrypted = CryptoJS.AES.decrypt(secret, key, {iv:

CryptoJS.AES.decrypt
函数返回一个空字数组

我的参数是
secret
key
iv
。密钥是一个256位的字数组,已确认正确;iv是一个128位的字数组,也已确认正确

使用php的
openssl\u encrypt()
对密码进行加密-明文为32字节-结果为48字节(因此似乎填充正确)

我曾尝试将secret作为WordArray、Hex字符串和base64字符串,但调用时:

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

解密的是一个空字数组。它快把我逼疯了。。。什么是失败?我会认为这个错误是在某个秘密的地方,有填充格式或者一些奇怪的东西,但是
Cryptojs
和o
penssl(encrypt/decrypt)
已经证明对我来说彼此是兼容的。请在我失去理智之前帮助我。

好的,关键是
CryptoJS.AES.decrypt(message,key,{iv:iv})
的文档说你可以为
message
参数提供WordArray、Hex或Base64。这似乎不是真的

我能让它工作的唯一方法是给它一个Base64字符串

键和iv必须仍然是
WordArray

*当我在几个小时内尝试Base64字符串时,我一定没有更改服务器上的输出以实际发送Base64,所以就这样

不过要感谢@CodesInChaos带来的持久性。这让我又开始搞编码了


…现在要清理所有那些
console.log()
var_dump()
散落在代码中的东西…

对这两种API都不熟悉,但WordArray可能意味着endianness问题。我一直以消息的形式向它提供WordArray,我花了很多时间试图弄清楚它。只给它喂食Base64立刻解决了问题。非常感谢。在我自己遇到这个问题后,我以