SymmetricAlgorithm.IV 属性

定义

获取或设置对称算法的初始化向量 (IV)。

public:
 virtual property cli::array <System::Byte> ^ IV { cli::array <System::Byte> ^ get(); void set(cli::array <System::Byte> ^ value); };
public virtual byte[] IV { get; set; }
member this.IV : byte[] with get, set
Public Overridable Property IV As Byte()

属性值

Byte[]

初始化向量。

例外

试图将初始化向量设置为 null

试图将初始化向量设置为无效大小。

注解

IV每当创建其中一个类的新实例SymmetricAlgorithm或手动调用 GenerateIV 方法时,属性将自动设置为新的随机值。 属性的大小 IV 必须与除以 8 的属性相同 BlockSize

SymmetricAlgorithm 类派生的类使用称为密码块链接 (CBC) 链接模式,这需要密钥和初始化向量才能对数据执行加密转换。 若要解密使用其中一个SymmetricAlgorithm类加密的数据,必须将 属性和 IV 属性设置为Key用于加密的相同值。

对于给定的密钥 k,不使用初始化向量的简单块密码会将纯文本的相同输入块加密为相同的密码文本输出块。 如果纯文本流中有重复的块,则密码文本流中会有重复的块。 如果未经授权的用户知道有关纯文本块结构的任何信息,他们可以使用该信息破译已知的密码文本块并可能恢复密钥。 为了解决此问题,将上一个块中的信息混合到加密下一个块的过程中。 因此,两个相同的纯文本块的输出是不同的。 由于此方法使用上一个块来加密下一个块,因此需要初始化向量来加密第一个数据块。

适用于

另请参阅