SYSLIB0041: Některé konstruktory Rfc2898DeriveBytes jsou zastaralé

Následující Rfc2898DeriveBytes konstruktory jsou zastaralé, počínaje rozhraním .NET 7. Použití v kódu generuje upozornění SYSLIB0041 v době kompilace.

Tato přetížení výchozí algoritmus hash nebo počet iterací a výchozí hodnoty se už nepovažují za bezpečné. Toto jsou všechny konstruktory, které byly k dispozici v .NET 4.7.1 a starších verzích. V budoucnu byste měli používat pouze novější konstruktory.

Alternativní řešení

Použijte jiné přetížení konstruktoru, kde můžete explicitně zadat počet iterací (výchozí hodnota je 1000) a název hash algoritmu (výchozí hodnota je HashAlgorithmName.SHA1).

Pokud používáte výchozí počet iterací nebo výchozí hashovací algoritmus, zvažte přechod na bezpečnější hodnoty– tj. větší počet iterací nebo novější hashovací algoritmus.

Potlačení upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable SYSLIB0041

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

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

Pokud chcete potlačit všechna SYSLIB0041 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

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

Další informace naleznete v tématu Potlačení upozornění.