SYSLIB0021: tipos criptográficos derivados são obsoletos
Os seguintes tipos criptográficos derivados são marcados como obsoletos, começando no .NET 6. Usar esses tipos no código gerará um aviso SYSLIB0021
em tempo de compilação.
- System.Security.Cryptography.AesCryptoServiceProvider
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.DESCryptoServiceProvider
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.SHA1CryptoServiceProvider
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
- System.Security.Cryptography.SHA256CryptoServiceProvider
- System.Security.Cryptography.SHA384Managed
- System.Security.Cryptography.SHA384CryptoServiceProvider
- System.Security.Cryptography.SHA512Managed
- System.Security.Cryptography.SHA512CryptoServiceProvider
- System.Security.Cryptography.TripleDESCryptoServiceProvider
Soluções Alternativas
Em vez disso, use o método Create
no tipo base. Por exemplo, use TripleDES.Create ao invés de TripleDESCryptoServiceProvider.
Suprimir um aviso
Se for necessário usar as APIs obsoletas, você poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma violação única, adicione as diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0021
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0021
Para suprimir todos os avisos SYSLIB0021
no projeto, adicione uma propriedade <NoWarn>
ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0021</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, confira Suprimir avisos.