SymmetricAlgorithm.IV 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置对称算法的初始化向量 (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 必须与 BlockSize 属性除以8相同。
派生自类的类 SymmetricAlgorithm 使用称为加密块链的链接模式 (CBC) ,这需要密钥和初始化向量来对数据执行加密转换。 若要对使用某个类加密的数据进行解密 SymmetricAlgorithm ,必须将 Key 属性和属性设置 IV 为用于加密的相同值。
对于给定的密钥 k,不使用初始化向量的简单块密码会将相同的纯文本输入块加密为相同的密码文本输出块。 如果纯文本流中存在重复的块,则密码文本流中会有重复的块。 如果未经授权的用户知道你的纯文本块的结构,他们可以使用该信息破译已知的密码文本块,并可能恢复你的密钥。 若要对付此问题,请将上一块中的信息混合到对下一个块进行加密的过程中。 因此,两个相同的纯文本块的输出是不同的。 由于此方法使用前面的块对下一个块进行加密,因此需要使用初始化向量来加密第一个数据块。