2011-10-06 38 views
2

我正在使用RijndaelManaged来加密和解密数据。我可能误解了一个初始化向量,但是我发现,如果在解密我的数据时将其设置为不同的值,除前16个字符外的所有字符仍然可以正确解密。那是预期的行为?是否需要初始化向量能够解密我的数据?

回答

3

是的。在CBC模式下,每个密文块被用作下一个密文块的IV。使用错误的IV会扰乱前16个字节块,但后续块将不受影响。这可能是一个有用的属性,因为它允许在错误块之后进行错误恢复,这在某些情况下很重要。它也说明了为什么没有必要保持IV秘密(不像密钥!)。

相关问题