Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Počínaje rozhraním .NET 11 jsou metody RSACryptoServiceProvider.Encrypt(Byte[], Boolean) a RSACryptoServiceProvider.Decrypt(Byte[], Boolean) zastaralé. Volání těchto metod v kódu generuje upozornění SYSLIB0064 v době kompilace.
Důvod zastarání
fOAEP Pokud je parametr true, tyto metody vždy používají SHA-1 jako algoritmus souhrnu pro optimalizovanou asymetrickou výplň pro šifrování (OAEP). Hashovací algoritmus je implicitní a nedá se změnit. Použijte přetížení, která místo toho přijímají explicitní argument RSAEncryptionPadding. Díky těmto přetížením je hashovací algoritmus explicitní, získáte větší flexibilitu při výběru algoritmu hash a pomůže vám vyhnout se náhodnému použití OAEP-SHA-1. Pokud potřebujete OAEP, raději RSAEncryptionPadding.OaepSHA256 nebo silnější místo migrace do RSAEncryptionPadding.OaepSHA1 výchozího nastavení, pokud kvůli kompatibilitě nepotřebujete SHA-1.
Alternativní řešení
Nahraďte volání zastaralých přetížení odpovídajícími přetíženími, která přijímají RSAEncryptionPadding argument.
| Zastaralé volání | Náhrada |
|---|---|
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) |
Potlačte upozornění
Pokud musíte použít zastaralé rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.
Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Pokud chcete potlačit všechna SYSLIB0064 upozornění ve vašem projektu, přidejte do souboru projektu vlastnost <NoWarn>.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
Další informace naleznete v tématu Potlačení upozornění.