Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El sistema de configuración criptográfica de .NET Framework no permite una agilidad criptográfica adecuada y no está presente en .NET Core y .NET 5+. . Los requisitos de compatibilidad con versiones anteriores de NET también prohíben que el marco actualice determinadas API criptográficas para mantenerse al día con los avances en la criptografía. Como resultado, las siguientes API están marcadas como obsoletas, a partir de .NET 5. El uso de estas APIs genera una advertencia SYSLIB0007 en tiempo de compilación y PlatformNotSupportedException en tiempo de ejecución.
- 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()
Soluciones alternativas
El curso de acción recomendado es reemplazar las llamadas a las API obsoletas ahora por llamadas a métodos de fábrica para algoritmos específicos, por ejemplo, Aes.Create(). Esto le proporciona control total sobre qué algoritmos se instancian.
Si necesita mantener la compatibilidad con las cargas existentes generadas por las aplicaciones de .NET Framework que usan las API obsoletas ahora, use los reemplazos sugeridos en la tabla siguiente. La tabla proporciona una asignación de algoritmos predeterminados de .NET Framework a sus equivalentes de .NET 5+.
.NET Framework Reemplazo compatible con .NET Core o .NET 5+ Observaciones AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() El algoritmo SHA-1 se considera roto. Considere la posibilidad de usar un algoritmo más seguro si es posible. Consulte a su asesor de seguridad para obtener más instrucciones. HMAC.Create() HMACSHA1() No se recomienda el algoritmo de HMACSHA1 para la mayoría de las aplicaciones modernas. Considere la posibilidad de usar un algoritmo más seguro si es posible. Consulte a su asesor de seguridad para obtener más instrucciones. KeyedHashAlgorithm.Create() HMACSHA1() No se recomienda el algoritmo de HMACSHA1 para la mayoría de las aplicaciones modernas. Considere la posibilidad de usar un algoritmo más seguro si es posible. Consulte a su asesor de seguridad para obtener más instrucciones. SymmetricAlgorithm.Create() Aes.Create()
Supresión de una advertencia
Si debe usar las API obsoletas, puede suprimir la advertencia en el código o en el archivo del proyecto.
Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la advertencia.
// Disable the warning.
#pragma warning disable SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Para suprimir todas las SYSLIB0007 advertencias del proyecto, agregue una <NoWarn> propiedad al archivo del proyecto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Para obtener más información, vea Suprimir advertencias.