Perl Crypt:Rijndael模块对初始16字节的错误解密

时间:2013-05-30 10:14:02

标签: perl cryptography encryption rijndael

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

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

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

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

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

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