Udostępnij za pośrednictwem


Domyślna wartość FeedbackSize dla wystąpień utworzonych przez TripleDES.Create została zmieniona

Wartość SymmetricAlgorithm.FeedbackSize domyślna właściwości zwróconej TripleDES przez wystąpienie TripleDES.Create() została zmieniona z 64 na 8, aby ułatwić migrację z programu .NET Framework. Ta właściwość, chyba że jest używana bezpośrednio w kodzie obiektu wywołującego, jest używana tylko wtedy, gdy Mode właściwość to CipherMode.CFB.

Obsługa CFB trybu została po raz pierwszy dodana do platformy .NET w wersji 5.0 RC1, więc ta zmiana powinna mieć wpływ tylko na aplikacje .NET 5 RC1 i .NET 5 RC2.

Opis zmiany

W programie .NET Core i poprzednich wersjach wstępnych platformy .NET 5 TripleDES.Create().FeedbackSize ma wartość domyślną 64. Począwszy od wersji RTM platformy .NET 5, TripleDES.Create().FeedbackSize ma wartość domyślną 8.

Przyczyna wprowadzenia zmiany

W programie .NET Framework klasa bazowa TripleDES domyślnie określa wartość FeedbackSize 64, ale TripleDESCryptoServiceProvider klasa zastępuje wartość domyślną 8. Gdy właściwość została wprowadzona FeedbackSize do platformy .NET Core w wersji 2.0, to samo zachowanie zostało zachowane. Jednak w programie .NET Framework TripleDES.Create() zwraca wystąpienie klasy , więc wartość domyślna z fabryki algorytmów TripleDESCryptoServiceProviderto 8. W przypadku platform .NET Core i .NET 5+fabryka algorytmów zwraca implementację niepublikową, która do tej pory miała domyślną wartość 64.

TripleDES Zmiana wartości klasy FeedbackSize implementacji na 8 umożliwia aplikacjom napisanym dla platformy .NET Framework, które określiły tryb szyfrowania, ale CFB nie przypisze FeedbackSize jawnie właściwości, aby nadal działać na platformie .NET 5.

Wprowadzona wersja

5,0

Aplikacje, które szyfrują lub odszyfrowują dane w wersji RC1 lub RC2 platformy .NET 5, robią to za pomocą usługi CFB64, gdy spełnione są następujące warunki:

Aby zachować to zachowanie, przypisz FeedbackSize właściwość do 64klasy .

Nie wszystkie TripleDES implementacje używają tej samej wartości domyślnej dla elementu FeedbackSize. Zalecamy, aby w przypadku korzystania z CFB trybu szyfrowania w TripleDES wystąpieniach zawsze jawnie przypisywać FeedbackSize wartość właściwości.

TripleDES cipher = TripleDES.Create();
cipher.Mode = CipherMode.CFB;
// Explicitly set the FeedbackSize for CFB to control between CFB8 and CFB64.
cipher.FeedbackSize = 8;

Dotyczy interfejsów API