共用方式為


SymmetricAlgorithm.IV 屬性

定義

取得或設定對稱演算法的初始化向量(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

嘗試將初始化向量設為無效大小。

備註

每當你建立某個類別的新實例SymmetricAlgorithm或手動呼叫該方法時GenerateIV,這個IV屬性會自動被設定為新的隨機值。 該物業的 IV 面積必須等於該 BlockSize 物業除以8。

衍生自該 SymmetricAlgorithm 類別的類別使用一種稱為密碼區塊鏈(CBC)的鏈式模式,該模式需要金鑰與初始化向量來對資料進行密碼學轉換。 要解密使用其中一個SymmetricAlgorithm類別加密的資料,你必須將屬性和IV屬性設定Key為加密時使用的相同值。

對於給定的秘密金鑰 k,一個不使用初始化向量的簡單區塊密碼,會將相同的輸入明文區塊加密成同一輸出區塊的密文。 如果你的明文流中有重複區塊,你的密文流中也會有重複區塊。 如果未經授權的使用者知道你明文區塊的結構,他們可以利用這些資訊破解已知密文區塊,甚至可能恢復你的密鑰。 為了解決這個問題,前一個區塊的資訊會被混入下一個區塊的加密過程中。 因此,兩個相同的純文字區塊輸出會不同。 由於此技術使用前一個區塊來加密下一個區塊,因此需要初始化向量來加密第一個資料區塊。

適用於

另請參閱