0

我正在使用Crypt::Rijndael模块来解密一些应用程序数据。

我将加密数据、加密密钥和客户端 IV 作为输入。

在 432 个字节的应用程序数据中,解密输出的前 16 个字节总是错误的。

什么可能导致这个问题?

4

1 回答 1

2

16 个字节为 128 位,与 AES/Rijndael 块大小相同。如果前 16 个字节是垃圾,然后是完整的消息,那么可能发生的情况是 IV 已预先添加到消息中,并且您正在尝试解密 IV 以及消息。要解决此问题,请提取传入密文的前 16 个字节并将其用作 IV。

或者,您有 16 个字节的垃圾,后跟部分消息,缺少前 16 个字节。在这种情况下,您可能使用了错误的 IV。确保您使用的是正确的 IV。逐个字节地检查它以确保它是正确的。特别是,确保正确处理传输 IV 时使用的任何编码。如果 IV 中有一点是错误的,你就会遇到问题。

于 2013-05-30T17:53:41.737 回答