SYSLIB0041: algunos constructores Rfc2898DeriveBytes están obsoletos

Los siguientes Rfc2898DeriveBytes constructores están obsoletos, a partir de .NET 7. Su empleo en el código genera una advertencia SYSLIB0041 en tiempo de compilación.

Estas sobrecargas tienen como valor predeterminado el algoritmo hash o el número de iteraciones y los valores predeterminados ya no se consideran seguros. Estos son todos los constructores que estaban disponibles en .NET 4.7.1 y versiones anteriores. En el futuro, solo debes usar los constructores más recientes.

Solución alternativa

Usa una sobrecarga de constructor diferente donde puede especificar explícitamente el recuento de iteraciones (el valor predeterminado es 1000) y el nombre del algoritmo hash (el valor predeterminado es HashAlgorithmName.SHA1).

Si usas el recuento de iteraciones predeterminado o el algoritmo hash predeterminado, considera la posibilidad de pasar a valores más seguros, es decir, un recuento de iteraciones mayor o un algoritmo hash más reciente.

Supresión de una advertencia

Si tiene que seguir usando las API obsoletas, puede suprimir la advertencia en el código o en el archivo de proyecto.

Para suprimir solo una infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y luego volver a habilitar la advertencia.

// Disable the warning.
#pragma warning disable SYSLIB0041

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0041

Para suprimir todas las advertencias SYSLIB0041 del proyecto, agregue una propiedad <NoWarn> al archivo del proyecto.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0041</NoWarn>
  </PropertyGroup>
</Project>

Para obtener más información, vea Suprimir advertencias.