Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET 11-től kezdve a RSACryptoServiceProvider.Encrypt(Byte[], Boolean) és a RSACryptoServiceProvider.Decrypt(Byte[], Boolean) metódusok elavultak. Ezeknek a metódusoknak a kódban való meghívása figyelmeztetést SYSLIB0064 generál fordításkor.
Az elavulás oka
Ha a paraméter azfOAEP, ezek a true metódusok mindig SHA-1-et használnak az optimális aszimmetrikus titkosítási padding (OAEP) emésztő algoritmusaként. A kivonatoló algoritmus implicit, és nem módosítható. Használjon olyan túlterheléseket, amelyek explicit RSAEncryptionPadding argumentumot fogadnak el inkább. Ezek a túlterhelések egyértelművé teszik a kivonatoló algoritmust, nagyobb rugalmasságot biztosítanak a kivonatoló algoritmus kiválasztásakor, és segítenek elkerülni az OAEP-SHA-1 véletlen használatát. Ha OAEP-re van szüksége, inkább RSAEncryptionPadding.OaepSHA256 vagy erősebb megoldást válasszon, ahelyett, hogy alapértelmezés szerint RSAEncryptionPadding.OaepSHA1-re váltana, kivéve, ha kompatibilitási okokból SHA-1-re van szüksége.
Megoldás
Cserélje le az elavult túlterhelésekre irányuló hívásokat az argumentumot RSAEncryptionPadding elfogadó megfelelő túlterhelésekre:
| Elavult hívás | Replacement |
|---|---|
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) |
Figyelmeztetés mellőzése
Ha az elavult API-t kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Ha el szeretné tiltani a projekt összes SYSLIB0064 figyelmeztetését, adjon hozzá egy <NoWarn> tulajdonságot a projektfájlhoz.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
További információ: Figyelmeztetések letiltása.