该CryptoJS.AES.decrypt
函数返回一个空的 WordArray。
我的参数是secret
、key
和iv
。key 是一个 256 位的 WordArray 并且被确认是正确的,iv 是一个 128 位的 WordArray 并且也被确认是正确的。
秘密是使用 php 加密的openssl_encrypt()
- 明文是 32 个字节 - 结果是 48 个字节(所以它似乎是正确填充)。
我已经尝试将 secret 作为 WordArray、Hex 字符串和 base64 字符串,但是当我调用时:
var decrypted = CryptoJS.AES.decrypt(secret, key, {iv: iv});
解密的是一个空的 WordArray。这让我发疯......什么失败了?我认为这个错误在某个地方是秘密的,有填充格式或一些奇怪的东西,但是Cryptojs
和 openssl_(encrypt/decrypt)
之前已经证明对我来说是相互兼容的。在我失去理智之前请帮忙。