Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de .NET 11, les méthodes RSACryptoServiceProvider.Encrypt(Byte[], Boolean) et RSACryptoServiceProvider.Decrypt(Byte[], Boolean) sont obsolètes. L’appel de ces méthodes dans le code génère un avertissement SYSLIB0064 au moment de la compilation.
Motif de l’obsolescence
Lorsque le fOAEP paramètre est true, ces méthodes utilisent toujours SHA-1 comme algorithme de synthèse pour le remplissage optimal du chiffrement asymétrique (OAEP). L’algorithme de hachage est implicite et ne peut pas être modifié. Utilisez plutôt des surcharges qui acceptent un argument explicite RSAEncryptionPadding . Ces surcharges rendent l’algorithme de hachage explicite, vous donnent plus de flexibilité lorsque vous choisissez un algorithme de hachage et vous évitez d’utiliser accidentellement OAEP-SHA-1. Lorsque vous avez besoin d'OAEP, préférez RSAEncryptionPadding.OaepSHA256 ou quelque chose de plus robuste au lieu de migrer vers RSAEncryptionPadding.OaepSHA1 par défaut, sauf si vous avez besoin de SHA-1 pour la compatibilité.
Solution de contournement
Remplacez les appels aux surcharges obsolètes par les surcharges correspondantes qui acceptent un argument RSAEncryptionPadding :
| Appel obsolète | Remplacement |
|---|---|
Encrypt(data, fOAEP: true) |
Encrypt(data, RSAEncryptionPadding.OaepSHA1) |
Encrypt(data, fOAEP: false) |
Encrypt(data, RSAEncryptionPadding.Pkcs1) |
Decrypt(data, fOAEP: true) |
Decrypt(data, RSAEncryptionPadding.OaepSHA1) |
Decrypt(data, fOAEP: false) |
Decrypt(data, RSAEncryptionPadding.Pkcs1) |
Supprimer un avertissement
Si vous devez utiliser l’API obsolète, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.
Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Pour supprimer tous les avertissements SYSLIB0064 dans votre projet, ajoutez une propriété <NoWarn> à votre fichier projet.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
Pour plus d’informations, consultez Supprimer des avertissements.