Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vanaf .NET 11 zijn de RSACryptoServiceProvider.Encrypt(Byte[], Boolean) en RSACryptoServiceProvider.Decrypt(Byte[], Boolean) methoden verouderd. Als u deze methoden aanroept in code, wordt er een waarschuwing SYSLIB0064 gegenereerd tijdens het compileren.
Reden voor afschaffing
Wanneer de parameter fOAEPtrue is, maken deze methoden altijd gebruik van SHA-1 als samenvattingsalgoritme voor Optimal Asymmetric Encryption Padding (OAEP). Het hash-algoritme is impliciet en kan niet worden gewijzigd. Gebruik in plaats daarvan overloads die een expliciet RSAEncryptionPadding argument accepteren. Deze overbelastingen maken het hash-algoritme expliciet, bieden u meer flexibiliteit wanneer u een hash-algoritme kiest en helpt u onbedoeld gebruik van OAEP-SHA-1 te voorkomen. Wanneer u OAEP nodig hebt, geeft u de voorkeur aan RSAEncryptionPadding.OaepSHA256 of een sterker alternatief in plaats van standaard naar RSAEncryptionPadding.OaepSHA1 te migreren, tenzij u SHA-1 nodig hebt voor compatibiliteit.
Workaround
Vervang aanroepen naar verouderde overbelastingen door de bijbehorende overbelastingen die een RSAEncryptionPadding argument accepteren:
| Verouderde aanroep | Vervanging |
|---|---|
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) |
Een waarschuwing onderdrukken
Als u de verouderde API moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Als u alle SYSLIB0064 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukkenvoor meer informatie.