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
。
嘗試將初始化向量設定為無效的大小。
備註
IV每當您建立其中一個SymmetricAlgorithm類別的新實例或手動呼叫 GenerateIV 方法時,屬性會自動設定為新的隨機值。 屬性的大小 IV 必須與 屬性除以8相同 BlockSize 。
衍生自 類別的 SymmetricAlgorithm 類別會使用稱為加密區塊鏈結的鏈結模式, (CBC) ,這需要索引鍵和初始化向量,才能對數據執行密碼編譯轉換。 若要解密使用其中 SymmetricAlgorithm 一個類別加密的數據,您必須將 Key 屬性和 IV 屬性設定為用於加密的相同值。
對於指定的秘密金鑰 k,不使用初始化向量的簡單區塊加密會將純文字的相同輸入區塊加密成加密文字的相同輸出區塊。 如果您在純文字數據流內有重複的區塊,則會在加密文字數據流內有重複的區塊。 如果未經授權的使用者知道純文本區塊結構的任何相關信息,他們可以使用該資訊來譯碼已知的加密文本塊,並可能復原您的密鑰。 為了解決這個問題,來自上一個區塊的資訊會混合到加密下一個區塊的程式。 因此,兩個相同純文本塊的輸出不同。 由於這項技術會使用前一個區塊來加密下一個區塊,因此需要初始化向量來加密第一個數據區塊。