Freigeben über


SYSLIB0041: Einige Rfc2898DeriveBytes-Konstruktoren sind veraltet.

Die folgenden Rfc2898DeriveBytes-Konstruktoren sind ab .NET 7 veraltet. Ihre Verwendung im Code ruft zur Kompilierzeit die Warnung SYSLIB0041 hervor.

Bei diesen Überladungen wird standardmäßig der Hashalgorithmus oder die Anzahl der Iterationen festgelegt und die Standardwerte gelten nicht mehr als sicher. Dies sind alle Konstruktoren, die in .NET 4.7.1 und früheren Versionen verfügbar waren. In Zukunft sollten Sie nur die neueren Konstruktoren verwenden.

Problemumgehung

Verwenden Sie eine andere Konstruktorüberladung, bei der Sie explizit die Iterationsanzahl (der Standardwert ist 1000) und den Namen des Hashalgorithmus (der Standardwert ist HashAlgorithmName.SHA1) angeben können.

Wenn Sie die Standarditerationsanzahl oder den Standardhashalgorithmus verwenden, sollten Sie zu sichereren Werten wechseln, d. h. zu einer größeren Iterationsanzahl oder einem neueren Hashalgorithmus.

Unterdrücken einer Warnung

Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung im Code oder in Ihrer Projektdatei unterdrücken.

Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Warnung zu deaktivieren und dann wieder zu aktivieren.

// Disable the warning.
#pragma warning disable SYSLIB0041

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

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

Um alle SYSLIB0041-Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn>-Eigenschaft hinzu.

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

Weitere Informationen finden Sie unter Unterdrücken von Warnungen.