Freigeben über


Der Standardwert für FeedbackSize für mit TripleDES.Create erstellte Instanzen wurde geändert

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

Unterstützung für den CFB-Modus steht für .NET seit dem 5.0 RC1-Release zur Verfügung. Nur .NET 5 RC1 und .NET 5 RC2-Anwendungen sollten also von dieser Änderung betroffen sein.

Änderungsbeschreibung

In .NET Core und vorherigen Vorabversionen von .NET 5 weist TripleDES.Create().FeedbackSize einen Standardwert von 64 auf. Ab der RTM-Version von .NET 5 weist TripleDES.Create().FeedbackSize einen Standardwert von 8 auf.

Grund für die Änderung

Im .NET Framework legt die TripleDES-Basisklasse für FeedbackSize einen Standardwert von 64 fest, die TripleDESCryptoServiceProvider-Klasse überschreibt den Standardwert jedoch durch 8. Als die FeedbackSize-Eigenschaft in der Version 2.0 von .NET Core eingeführt wurde, wurde dieses Verhalten beibehalten. Im .NET Framework gibt TripleDES.Create() jedoch eine Instanz von TripleDESCryptoServiceProvider zurück. Der Standardwert der Algorithmusfactory ist also 8. Für .NET Core und .NET 5 und höher gibt die Algorithmusfactory eine nicht öffentliche Implementierung zurück, die bis jetzt einen Standardwert von 64 aufwies.

Das Ändern des FeedbackSize-Werts der TripleDES-Implementierungsklasse in 8 ermöglicht es, dass Anwendungen, die für das .NET Framework geschrieben wurden, in dem der Verschlüsselungsmodus auf CFB festgelegt war, die die FeedbackSize-Eigenschaft jedoch nicht explizit zuwiesen, in .NET 5 weiterhin funktionieren.

Eingeführt in Version

5.0

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

Wenn dieses Verhalten beibehalten werden soll, weisen Sie die FeedbackSize-Eigenschaft 64 zu.

Nicht für alle TripleDES-Implementierungen wird derselbe Standardwert für FeedbackSize verwendet. 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