Partager via


La valeur FeedbackSize par défaut pour les instances créées par TripleDES.Create a changé

La valeur par défaut de la propriété SymmetricAlgorithm.FeedbackSize sur l’instance TripleDES retournée à partir de TripleDES.Create() est passé de 64 à 8 pour faciliter la migration à partir de .NET Framework. Cette propriété, sauf si elle est utilisée directement dans le code de l’appelant, est utilisée uniquement lorsque la propriété Mode est CipherMode.CFB.

Le support du mode CFB a d’abord été ajouté à .NET pour la version 5.0 RC1. Par conséquent, seules les applications .NET 5 RC1 et .NET 5 RC2 doivent être affectées par ce changement.

Description de la modification

Dans .NET Core et les versions antérieures de .NET 5, TripleDES.Create().FeedbackSize a 64 pour valeur par défaut. À partir de la version RTM de .NET 5, TripleDES.Create().FeedbackSize à la valeur par défaut est 8.

Raison du changement

Dans .NET Framework, la classe de base TripleDES passe par défaut la valeur de FeedbackSize à 64, mais la classe TripleDESCryptoServiceProvider remplace la valeur par défaut sur 8. Lorsque la propriété FeedbackSize a été introduite dans .NET Core dans la version 2.0, ce même comportement a été conservé. Toutefois, dans .NET Framework, TripleDES.Create() retourne une instance de TripleDESCryptoServiceProvider, ainsi la valeur par défaut de la fabrique de l’algorithme est 8. Pour .NET Core et .NET 5+, la fabrique d’algorithme retourne une implémentation non publique, qui, jusqu’à présent, avait une valeur par défaut de 64.

Le changement de valeur de la TripleDES classe d’implémentation FeedbackSize à 8 permet aux applications écrites pour .NET Framework qui ont spécifié le mode de chiffrement en tant que CFB mais n’ont pas attribué explicitement la propriété FeedbackSize, de continuer à fonctionner sur .NET 5.

Version introduite

5,0

Les applications qui chiffrent ou déchiffrent des données dans les versions RC1 ou RC2 de .NET 5 le font avec CFB64, lorsque les conditions suivantes sont remplies :

Pour maintenir ce comportement, affectez la propriété FeedbackSize à 64.

Toutes les implémentations TripleDES n’utilisent pas la même valeur par défaut pour FeedbackSize. Nous vous recommandons de toujours attribuer explicitement, avec le mode de chiffrement CFB sur les instances TripleDES, la valeur de propriété FeedbackSize.

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

API affectées