AesCryptoServiceProvider.IV 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置对称算法的初始化向量 (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,不使用初始化向量的简单块密码会将同一纯文本输入块加密为相同的密码文本输出块。 如果纯文本流中有重复的块,则密码文本流中会有重复的块。 如果未经授权的用户知道纯文本块的结构,他们可以使用该信息破译已知的密码文本块,并可能恢复密钥。 为了解决此问题,将上一个块中的信息混合到加密下一个块的过程中。 因此,两个相同的纯文本块的输出是不同的。 由于此方法使用上一个块来加密下一个块,因此需要初始化向量来加密第一个数据块。