encryption - 是否需要初始化向量才能解密我的数据?

标签 encryption cryptography rijndaelmanaged

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

最佳答案

是的。在 CBC 模式中,每个密文 block 用作下一个密文 block 的 IV。使用错误的 IV 会弄乱第一个 16 字节 block ,但后续 block 将不受影响。这可能是一个有用的属性,因为它允许在错误 block 后进行错误恢复,这在某些情况下可能很重要。它还说明了为什么实际上没有必要对 IV 保密(与 key 不同!)。

关于encryption - 是否需要初始化向量才能解密我的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676547/

相关文章:

.net - 使用 Rijndael 或 AES 加密对值进行加盐是一种基本的良好做法吗?

c# - 为什么 RijndaelManaged 和 AesCryptoServiceProvider 返回不同的结果?

macos - 在 Mac 操作系统上从 sqlite db 解密 chrome cookie

python - 如何将 x、y 坐标编码为来自 Dart 的 python ecdsa VerifyingKey 格式

python - 对 paramiko 和 pycrypto 有一个奇怪的问题

c# - 对称加密加密很多小块

c# - 使用 Rijndael 加密时的 key 、盐和 IV

android - 如何在 Android 应用程序中保护密码

java - 每次打印的 IvParameterSpec 值不同

android - 当我尝试在android中解密时出现AES BadTag异常