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 使用名為 cipher 區塊連結 (CBC) 的連結模式,這需要索引鍵和初始化向量來對資料執行密碼編譯轉換。 若要使用其中一個類別來解密已加密的資料 SymmetricAlgorithm ,您必須將 Key 屬性和 IV 屬性設定為加密所用的相同值。
針對指定的私密金鑰 k,不使用初始化向量的簡單區塊密碼會將相同的純文字輸入區塊加密為加密文字的相同輸出區塊。 如果您在純文字資料流程中有重複的區塊,您的加密文字資料流程內將會有重複的區塊。 如果未經授權的使用者知道您的純文字區塊結構,則可以使用該資訊來解密已知的密碼文字區塊,並可能復原您的金鑰。 為了對抗這個問題,會將前一個區塊的資訊混合成加密下一個區塊的程式。 因此,兩個相同純文字區塊的輸出不同。 由於這項技術會使用前一個區塊來加密下一個區塊,因此需要初始化向量才能加密第一個資料區塊。