【发布时间】:2022-01-27 18:21:27
【问题描述】:
他们说您可以使用相同的密钥但另一个初始化向量来解密数据, 如何实现这一目标? 例子: 我的加密IV如下 byte[] bytes = {12,12,5,12,32,62,91,16,89,92,17,72,45,52,13,42}; 但对于我来说,解密是长度为 16 字节的随机 IV。
【问题讨论】:
-
他们是谁,在哪里说的?
-
对于 CBC,不正确的 IV 只会破坏第一个块,因为下一个块实际上只需要前一个加密块。使用相对较小的块大小和相对容忍早期字节损坏的文件格式,看起来不正确的 IV 仍然“有效”
-
所以不能用differet IV解密?我刚在网上看到的。
-
它似乎适用于宽容的格式,例如 JPEG。结果仍然是清晰的图像,但第一个块实际上丢失了。
-
我怀疑他们要么误解了你,要么把它错误地传达给了你。您对每条消息使用不同的 IV,是的,因此发送两次的相同未加密消息看起来不会被加密。 IV 可以作为消息的一部分作为纯文本传递 - 攻击者可以看到它并不重要 - 它只是用于随机化使用密钥加密的消息。但是对于特定消息,IV 确实需要在两边都相同。
标签: c# .net encryption aes