Freigeben über


Der Standardwert für FeedbackSize bei durch TripleDES.Create erstellten Instanzen wurde geändert.

Der Standardwert für die SymmetricAlgorithm.FeedbackSize-Eigenschaft der von TripleDES zurückgegebenen TripleDES.Create()-Instanz wurde von 64 auf 8 geändert, um die Migration von .NET Framework zu vereinfachen. Diese Eigenschaft wird nur dann verwendet, wenn die Mode Eigenschaft CipherMode.CFB ist, es sei denn, sie wird direkt im Aufrufercode verwendet.

Die Unterstützung für den CFB Modus wurde zunächst für die Version 5.0 RC1 zu .NET hinzugefügt, sodass sich nur .NET 5 RC1- und .NET 5 RC2-Anwendungen auf diese Änderung auswirken sollten.

Änderungsbeschreibung

In .NET Core und früheren Vorabversionen von .NET 5 TripleDES.Create().FeedbackSize ist der Standardwert 64. Ab der RTM-Version von .NET 5 TripleDES.Create().FeedbackSize ist der Standardwert 8.

Grund für Änderung

In .NET Framework legt die TripleDES Basisklasse standardmäßig den Wert von FeedbackSize 64 fest, aber die TripleDESCryptoServiceProvider Klasse überschreibt die Standardeinstellung auf 8. Wenn die FeedbackSize Eigenschaft in .NET Core in Version 2.0 eingeführt wurde, wurde dieses Verhalten beibehalten. In .NET Framework gibt TripleDES.Create() jedoch eine Instanz von TripleDESCryptoServiceProvider zurück, sodass der Standardwert aus der Algorithmusfabrik 8 ist. Für .NET Core und .NET 5+ gibt die Algorithmusfactory eine nicht öffentliche Implementierung zurück, die bis jetzt einen Standardwert von 64 hatte.

Wenn der Wert der TripleDES Implementierungsklasse FeedbackSize auf 8 geändert wird, können Anwendungen, die für .NET Framework geschrieben wurden und den Verschlüsselungsmodus als CFB angegeben, die Eigenschaft jedoch nicht explizit FeedbackSize zugewiesen haben, unter .NET 5 weiterlaufen.

Eingeführte Version

5.0

Anwendungen, die Daten in den RC1- oder RC2-Versionen von .NET 5 verschlüsseln oder entschlüsseln, tun dies mit CFB64, wenn die folgenden Bedingungen erfüllt sind:

Um dieses Verhalten beizubehalten, weisen Sie die FeedbackSize Eigenschaft zu 64.

Nicht alle TripleDES Implementierungen verwenden denselben Standardwert für FeedbackSize. Wenn Sie den CFB Verschlüsselungsmodus für TripleDES Instanzen verwenden, sollten Sie den FeedbackSize Eigenschaftswert immer explizit zuweisen.

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

Betroffene APIs