Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O sistema de configuração criptográfica no .NET Framework não permite agilidade criptográfica adequada e não está presente no .NET Core e no .NET 5+. . Os requisitos de compatibilidade com versões anteriores do NET também proíbem a estrutura de atualizar determinadas APIs criptográficas para acompanhar os avanços na criptografia. Como resultado, as SEGUINTEs APIs são marcadas como obsoletas, começando no .NET 5. O uso dessas APIs gera um aviso SYSLIB0007 em tempo de compilação e um PlatformNotSupportedException em runtime.
- 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()
Soluções alternativas
O curso de ação recomendado é substituir chamadas para as APIs agora obsoletas por chamadas a métodos de fábrica para algoritmos específicos, por exemplo. Aes.Create() Isso fornece controle total sobre quais algoritmos são instanciados.
Se você precisar manter a compatibilidade com cargas existentes geradas por aplicativos do .NET Framework que usam as APIs agora obsoletas, use as substituições sugeridas na tabela a seguir. A tabela fornece um mapeamento de algoritmos padrão do .NET Framework para seus equivalentes do .NET 5+.
.NET Framework Substituição compatível com .NET Core/.NET 5+ Observações AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() O algoritmo SHA-1 é considerado quebrado. Considere usar um algoritmo mais forte, se possível. Consulte o orientador de segurança para obter mais diretrizes. HMAC.Create() HMACSHA1() O algoritmo HMACSHA1 é desaconselhado para a maioria dos aplicativos modernos. Considere usar um algoritmo mais forte, se possível. Consulte o orientador de segurança para obter mais diretrizes. KeyedHashAlgorithm.Create() HMACSHA1() O algoritmo HMACSHA1 não é recomendado para a maioria dos aplicativos modernos. Considere usar um algoritmo mais forte, se possível. Consulte o orientador de segurança para obter mais diretrizes. SymmetricAlgorithm.Create() Aes.Create()
Suprimir um aviso
Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilitar o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Para suprimir todos os SYSLIB0007 avisos em seu projeto, adicione uma <NoWarn> propriedade ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, consulte Suprimir avisos.