Sdílet prostřednictvím


Výchozí hodnota FeedbackSize pro instance vytvořené tripleDES.Create změněna

Výchozí hodnota vlastnosti pro SymmetricAlgorithm.FeedbackSize TripleDES instanci vrácenou z TripleDES.Create() 64 na 8 se změnila, aby byla migrace z rozhraní .NET Framework jednodušší. Tato vlastnost, pokud není použita přímo v kódu volajícího, je použita pouze v případě, že Mode je CipherMode.CFBvlastnost .

CFB Podpora režimu byla poprvé přidána do .NET pro verzi 5.0 RC1, takže tato změna by měla mít vliv jenom na aplikace .NET 5 RC1 a .NET 5 RC2.

Změna popisu

V .NET Core a předchozích předběžných verzích .NET 5 TripleDES.Create().FeedbackSize má výchozí hodnotu 64. Počínaje verzí RTM .NET 5 TripleDES.Create().FeedbackSize má výchozí hodnotu 8.

Důvod změny

V rozhraní .NET Framework TripleDES základní třída výchozí hodnotu FeedbackSize 64, ale TripleDESCryptoServiceProvider třída přepíše výchozí hodnotu 8. FeedbackSize Když byla vlastnost zavedena v .NET Core ve verzi 2.0, toto stejné chování bylo zachováno. V rozhraní .NET Framework TripleDES.Create() však vrátí instanci TripleDESCryptoServiceProvider, takže výchozí hodnota z objektu pro vytváření algoritmů je 8. V případě .NET Core a .NET 5+ vrátí objekt pro vytváření algoritmů neveřejnou implementaci, která doteď měla výchozí hodnotu 64.

TripleDES Změna hodnoty implementační třídy FeedbackSize na 8 umožňuje aplikacím napsaných pro rozhraní .NET Framework, které určily režim šifry, jako CFB ale explicitně nepřiřazovat FeedbackSize vlastnost, aby nadále fungovaly v .NET 5.

Zavedená verze

5,0

Aplikace, které šifrují nebo dešifrují data ve verzích RC1 nebo RC2 rozhraní .NET 5, to dělají s CFB64, pokud jsou splněny následující podmínky:

Chcete-li zachovat toto chování, přiřaďte FeedbackSize vlastnost .64

Ne všechny TripleDES implementace používají stejnou výchozí hodnotu pro FeedbackSize. Pokud u instancí používáte CFB režim TripleDES šifry, doporučujeme vždy explicitně přiřadit FeedbackSize hodnotu vlastnosti.

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

Ovlivněná rozhraní API