Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Från och med .NET 11 är metoderna RSACryptoServiceProvider.Encrypt(Byte[], Boolean) och RSACryptoServiceProvider.Decrypt(Byte[], Boolean) föråldrade. Om du anropar dessa metoder i koden genereras en varning SYSLIB0064 vid kompileringstillfället.
Orsak till obsoletion
När parametern fOAEP är trueanvänder dessa metoder alltid SHA-1 som sammanfattande algoritm för optimal asymmetrisk krypteringsutfyllnad (OAEP). Hash-algoritmen är implicit och kan inte ändras. Använd överlagringar som accepterar ett explicit RSAEncryptionPadding argument i stället. Dessa överlagringar gör hash-algoritmen explicit, ger dig mer flexibilitet när du väljer en hash-algoritm och hjälper dig att undvika oavsiktlig användning av OAEP-SHA-1. När du behöver OAEP, föredrar RSAEncryptionPadding.OaepSHA256 eller är starkare i stället för att migrera till RSAEncryptionPadding.OaepSHA1 som standard, såvida du inte behöver SHA-1 för kompatibilitet.
Workaround
Ersätt anrop till föråldrade överlagringar med motsvarande överlagringar som accepterar ett RSAEncryptionPadding argument:
| Inaktuellt anrop | Ersättning |
|---|---|
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) |
Undertryck en varning
Om du måste använda det föråldrade API:et kan du utelämna varningen i koden eller i projektfilen.
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Om du vill ignorera alla SYSLIB0064 varningar i projektet lägger du till en <NoWarn>-egenskap i projektfilen.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
För mer information, se Undertrycka varningar.