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 類別加密的資料,您必須將 Key 屬性和 IV 屬性設定為用於加密的相同值。

針對指定的秘密金鑰 k,未使用初始化向量的簡單區塊加密會將純文字的相同輸入區塊加密為加密文字的相同輸出區塊。 如果您的純文字資料流程中有重複的區塊,則加密文字資料流程內會有重複的區塊。 如果未經授權的使用者知道純文字區塊的結構,他們可以使用該資訊來解碼已知的加密文字區塊,並可能復原您的金鑰。 為了解決這個問題,上一個區塊的資訊會混合到加密下一個區塊的程式。 因此,兩個相同純文字區塊的輸出不同。 由於這項技術會使用上一個區塊來加密下一個區塊,因此需要初始化向量來加密第一個資料區塊。

適用於