我正在使用Crypt::Rijndael
模块来解密某些应用程序数据。
我将加密数据,加密密钥和客户端IV作为输入。
在432个字节的应用程序数据中,解密输出的前16个字节总是错误的。
可能导致此问题的原因是什么?
答案 0 :(得分:2)
16个字节是128位,与AES / Rijndael块大小相同。如果前16个字节是垃圾,然后是完整的消息,那么可能发生的是IV已经预先添加到消息中,并且您正在尝试解密IV以及消息。要解决,请提取传入密文的前16个字节并将其用作IV。
或者,您有16个字节的垃圾,后跟部分消息,缺少前16个字节。在这种情况下,您可能使用了错误的IV。确保使用正确的IV。逐字节检查以确保它是正确的。特别是,确保正确处理传输IV时使用的任何编码。如果IV中的一个位错误则会出现问题。