AesCryptoServiceProvider.IV Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wektor inicjowania (IV) dla algorytmu symetrycznego.
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()
Wartość właściwości
Wektor inicjowania.
Wyjątki
Podjęto próbę ustawienia wektora inicjowania na null
.
Podjęto próbę ustawienia wektora inicjowania na nieprawidłowy rozmiar.
Uwagi
Właściwość IV jest automatycznie ustawiana na nową wartość losową za każdym razem, gdy tworzysz nowe wystąpienie jednej z SymmetricAlgorithm klas lub podczas ręcznego wywoływania GenerateIV metody. Rozmiar IV właściwości musi być taki sam jak BlockSize właściwość podzielona przez 8.
Klasy pochodzące z SymmetricAlgorithm klasy używają trybu łańcucha nazywanego łańcuchem bloków łańcucha (CBC), który wymaga klucza i wektora inicjowania do wykonywania przekształceń kryptograficznych na danych. Aby odszyfrować dane zaszyfrowane przy użyciu jednej z SymmetricAlgorithm klas, należy ustawić Key właściwość i IV właściwość na te same wartości, które były używane do szyfrowania.
W przypadku danego klucza tajnego k prosty szyfr blokowy, który nie używa wektora inicjowania, zaszyfruje ten sam blok wejściowy zwykłego tekstu do tego samego bloku wyjściowego tekstu szyfrowania. Jeśli masz zduplikowane bloki w strumieniu zwykłego tekstu, będziesz mieć zduplikowane bloki w strumieniu tekstu szyfrowania. Jeśli nieautoryzowani użytkownicy wiedzą cokolwiek o strukturze bloku zwykłego tekstu, mogą użyć tych informacji do rozszyfrowania znanego bloku tekstu szyfrowania i ewentualnie odzyskać klucz. Aby rozwiązać ten problem, informacje z poprzedniego bloku są mieszane do procesu szyfrowania następnego bloku. W związku z tym dane wyjściowe dwóch identycznych bloków zwykłego tekstu są różne. Ponieważ ta technika używa poprzedniego bloku do szyfrowania następnego bloku, wektor inicjowania jest potrzebny do zaszyfrowania pierwszego bloku danych.