我正在使用 RijndaelManaged 来加密和解密数据。我很可能误解了初始化向量的意义,但我发现如果我在解密数据时将其设置为不同的值,则除前 16 个字符外的所有字符仍然可以正确解密。这是预期的行为吗?
最佳答案
是的。在 CBC 模式中,每个密文 block 用作下一个密文 block 的 IV。使用错误的 IV 会弄乱第一个 16 字节 block ,但后续 block 将不受影响。这可能是一个有用的属性,因为它允许在错误 block 后进行错误恢复,这在某些情况下可能很重要。它还说明了为什么实际上没有必要对 IV 保密(与 key 不同!)。
关于encryption - 是否需要初始化向量才能解密我的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676547/