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.
A partir do .NET 11, os métodos RSACryptoServiceProvider.Encrypt(Byte[], Boolean) e RSACryptoServiceProvider.Decrypt(Byte[], Boolean) são obsoletos. Chamar esses métodos no código gera aviso SYSLIB0064 em tempo de compilação.
Motivo da obsolescência
Quando o fOAEP parâmetro é true, esses métodos sempre usam SHA-1 como o algoritmo de resumo para OAEP (Preenchimento de Criptografia Assimétrica Ideal). O algoritmo de hash está implícito e não pode ser alterado. Utilize sobrecargas que aceitam um argumento explícito RSAEncryptionPadding. Essas sobrecargas tornam o algoritmo de hash explícito, oferecem mais flexibilidade ao escolher um algoritmo de hash e ajudam a evitar o uso acidental de OAEP-SHA-1. Quando você precisar de OAEP, prefira RSAEncryptionPadding.OaepSHA256 ou uma opção mais forte em vez de migrar para RSAEncryptionPadding.OaepSHA1 por padrão, a menos que precise do SHA-1 para compatibilidade.
Workaround
Substitua as chamadas às sobrecargas obsoletas pelas correspondentes que aceitam um argumento RSAEncryptionPadding:
| Chamada obsoleta | Substituição |
|---|---|
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) |
Suprimir um aviso
Se você precisar usar a API obsoleta, 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, habilitar novamente o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0064
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0064
Para suprimir todos os avisos SYSLIB0064 no projeto, adicione uma propriedade <NoWarn> ao arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0064</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, consulte Suprimir avisos.