【发布时间】:2013-04-11 12:23:34
【问题描述】:
CryptoJS.AES.decrypt 函数返回一个空的 WordArray。
我的参数是secret、key和iv。 key 是 256 位的 WordArray,确认正确,iv 是 128 位的 WordArray,也确认正确。
secret 使用 php 的 openssl_encrypt() 加密 - 明文为 32 字节 - 结果为 48 字节(因此它似乎正确填充)。
我尝试过将 secret 作为 WordArray、Hex 字符串和 base64 字符串,但是当我调用时:
var decrypted = CryptoJS.AES.decrypt(secret, key, {iv: iv});
decrypted 是一个空的 WordArray。这让我发疯......什么失败了?我认为这个错误在某个地方是秘密的,有填充格式或一些奇怪的东西,但Cryptojs 和 openssl_(encrypt/decrypt) 之前已证明对我来说彼此兼容。在我失去理智之前请帮忙。
【问题讨论】:
-
对这两个 API 都不熟悉,但 WordArray 可能意味着字节序问题。
标签: javascript encryption cryptojs