AesCryptoServiceProvider.IV 属性

定义

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

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

属性值

Byte[]

初始化向量。

例外

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

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

注解

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

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

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

适用于