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.
Kryptografický konfigurační systém v rozhraní .NET Framework neumožňuje správnou kryptografickou flexibilitu a není k dispozici v .NET Core a .NET 5+. Požadavky na zpětnou kompatibilitu .NET také brání aktualizaci určitých kryptografických API, aby držela krok s pokroky v kryptografii. V důsledku toho jsou následující rozhraní API označena zastaralá, počínaje verzí .NET 5. Použití těchto rozhraní API generuje upozornění SYSLIB0007 v době kompilace a PlatformNotSupportedException za běhu.
- System.Security.Cryptography.AsymmetricAlgorithm.Create()
- System.Security.Cryptography.HashAlgorithm.Create()
- System.Security.Cryptography.HMAC.Create()
- System.Security.Cryptography.KeyedHashAlgorithm.Create()
- System.Security.Cryptography.SymmetricAlgorithm.Create()
Alternativní řešení
Doporučený postup je nahradit volání nyní zastaralých rozhraní API voláními metod továrny pro konkrétní algoritmy, například Aes.Create(). Tím získáte úplnou kontrolu nad tím, které algoritmy budou instancovány.
Pokud potřebujete zachovat kompatibilitu s existujícími datovými částmi vygenerovanými aplikacemi rozhraní .NET Framework, které používají nyní zastaralá rozhraní API, použijte náhrady navrhované v následující tabulce. Tabulka poskytuje mapování z výchozích algoritmů rozhraní .NET Framework na jejich ekvivalenty .NET 5 nebo novější.
.NET Framework Náhrada kompatibilní s .NET Core / .NET 5+ Poznámky AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() Algoritmus SHA-1 se považuje za poškozený. Pokud je to možné, zvažte použití silnějšího algoritmu. Další pokyny najdete v poradci pro zabezpečení. HMAC.Create() HMACSHA1() U většiny moderních aplikací se nedoporučuje HMACSHA1 algoritmus. Pokud je to možné, zvažte použití silnějšího algoritmu. Další pokyny najdete v poradci pro zabezpečení. KeyedHashAlgorithm.Create() HMACSHA1() U většiny moderních aplikací se nedoporučuje HMACSHA1 algoritmus. Pokud je to možné, zvažte použití silnějšího algoritmu. Další pokyny najdete v poradci pro zabezpečení. SymmetricAlgorithm.Create() Aes.Create()
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 SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Pokud chcete potlačit všechna SYSLIB0007 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Další informace naleznete v tématu Potlačení upozornění.