Modifica del valore FeedbackSize predefinito per le istanze create da TripleDES.Create
Il valore predefinito per la proprietà SymmetricAlgorithm.FeedbackSize nell'istanza di TripleDES restituita da TripleDES.Create() è stato modificato da 64 a 8 per semplificare la migrazione da .NET Framework. Questa proprietà, a meno che non venga usata direttamente nel codice del chiamante, viene usata solo quando la proprietà Mode è CipherMode.CFB.
Il supporto per la modalità CFB è stato aggiunto per la prima volta a .NET per la versione 5.0 RC1, pertanto solo le applicazioni .NET 5 RC1 e .NET 5 RC2 dovrebbero essere interessate da questa modifica.
Descrizione delle modifiche
In .NET Core e nelle versioni precedenti di .NET 5, il valore predefinito di TripleDES.Create().FeedbackSize
è 64. A partire dalla versione RTM di .NET 5, il valore predefinito di TripleDES.Create().FeedbackSize
è 8.
Motivo della modifica
In .NET Framework, la classe di base TripleDES imposta come predefinito il valore di FeedbackSize su 64, ma la classe TripleDESCryptoServiceProvider sovrascrive il valore predefinito su 8. Quando la proprietà FeedbackSize è stata introdotta in .NET Core nella versione 2.0, è stato mantenuto questo stesso comportamento. In .NET Framework, tuttavia, TripleDES.Create() restituisce un'istanza di TripleDESCryptoServiceProvider, quindi il valore predefinito della factory dell'algoritmo è 8. Per .NET Core e .NET 5+, la factory dell'algoritmo restituisce un'implementazione non pubblica, che fino ad ora aveva un valore predefinito di 64.
La modifica del valore FeedbackSize della classe di implementazione di TripleDES su 8 consente alle applicazioni scritte per .NET Framework che specificano la modalità di crittografia CFB ma non assegnano in modo esplicito la proprietà FeedbackSize, di continuare a funzionare in .NET 5.
Versione di introduzione
5.0
Azione consigliata
Le applicazioni che crittografano o decrittografano i dati nelle versioni RC1 o RC2 di .NET 5 lo fanno con CFB64, quando vengono soddisfatte le condizioni seguenti:
- Con un'istanza di TripleDES da TripleDES.Create().
- Uso del valore predefinito per FeedbackSize.
- Con la proprietà Mode impostata su CipherMode.CFB.
Per mantenere questo comportamento, assegnare la proprietà FeedbackSize a 64
.
Non tutte le implementazioni di TripleDES
usano lo stesso valore predefinito per FeedbackSize. Se si usa la modalità di crittografia CFB nelle istanze di TripleDES, è consigliabile assegnare sempre in modo esplicito il valore della proprietà FeedbackSize.
TripleDES cipher = TripleDES.Create();
cipher.Mode = CipherMode.CFB;
// Explicitly set the FeedbackSize for CFB to control between CFB8 and CFB64.
cipher.FeedbackSize = 8;