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
Doporučená akce
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:
- TripleDES S instancí z TripleDES.Create().
- Použití výchozí hodnoty pro FeedbackSize.
- Vlastnost je nastavena Mode na CipherMode.CFBhodnotu .
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;