传输加密数据是相当标准的 IV.Concat(cipherText) 。将IV放在一边也是相当标准的,比如 PKCS#5 。
IV.Concat(cipherText)
IV-on-side方法与.NET想要处理数据的方式更紧密地匹配,因为切断IV以将其单独传递给IV参数(或属性)有点烦人,然后有更多使用密文(或恢复的明文)进行复杂的切片操作。
但IV通常以明确的方式传输。
所以,将它粘合在一起,或者将它作为一个单独的列...更适合你的程序和结构。
的 回答: 强> 只要内容已经用它加密,IV就是解密所必需的。您不需要加密或隐藏IV。它可能是公开的。
-
IV的目的是组合到你正在使用的密钥,所以就像你用不同的“最终密钥”加密每个“数据块”然后它保证密码数据(加密的数据)将在加密(和解密)过程中总是不同的。
这是一个非常好的例子说明会发生什么 的 如果你不这样做 强> 使用IV。
基本上,加密过程是通过以块为单位加密输入数据来完成的。所以在这个例子的加密过程中,如果你总是使用相同的键,那么具有相同颜色的图像的所有部分(比如白色背景)将输出相同的“密码数据”,然后仍然可以找到一个模式,然后你没有按照需要隐藏图像。
结合起来 的 不同的 强> 附加数据(IV)到密钥 的 每 强> 块就像你为每个块使用不同的“最终键”,然后你解决了你的问题。