SYSLIB0041: 一部の Rfc2898DeriveBytes コンストラクターは廃止されました

次の Rfc2898DeriveBytes コンストラクターは .NET 7 以降廃止されました。 これらをコードで使用すると、コンパイル時に警告 SYSLIB0041 が生成されます。

これらのオーバーロードによってハッシュ アルゴリズムや反復回数が既定の設定になります。既定値では安全ではないと見なされます。 これらは、.NET 4.7.1 以前のバージョンで利用できたコンストラクターのすべてです。 今後は、新しいコンストラクターのみを使用してください。

回避策

反復回数 (既定値は 1000) とハッシュ アルゴリズム名 (既定値は HashAlgorithmName.SHA1) を明示的に指定できる別のコンストラクター オーバーロードを使用します。

既定の反復カウントまたは既定のハッシュ アルゴリズムを使用している場合、値をもっと安全にすること (つまり、反復回数を増やし、ハッシュ アルゴリズムを新しくする) を検討してください。

警告を抑制する

古い API を使う必要がある場合は、コードまたはプロジェクト ファイルで警告を抑制することができます。

単一の違反だけを抑制するには、ソース ファイルにプリプロセッサ ディレクティブを追加して警告を無効にしてから、再度有効にします。

// Disable the warning.
#pragma warning disable SYSLIB0041

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

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

プロジェクトですべての SYSLIB0041 警告を抑制するには、プロジェクト ファイルに <NoWarn> プロパティを追加します。

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

詳細については、「警告を表示しない」を参照してください。