Bagikan melalui


SYSLIB0041: Beberapa konstruktor Rfc2898DeriveBytes sudah usang

Konstruktor berikut Rfc2898DeriveBytes usang, mulai dari .NET 7. Menggunakannya dalam kode menghasilkan peringatan SYSLIB0041 pada waktu kompilasi.

Ini membebani secara default algoritma hash atau jumlah iterasi, dan default tidak lagi dianggap aman. Ini adalah semua konstruktor yang tersedia di .NET 4.7.1 dan versi yang lebih lama. Ke depannya, Anda hanya boleh menggunakan konstruktor yang lebih baru.

Solusi Sementara

Gunakan overload konstruktor yang berbeda di mana Anda dapat secara eksplisit menentukan jumlah iterasi (defaultnya adalah 1000) dan nama algoritma hash (defaultnya adalah HashAlgorithmName.SHA1).

Jika Anda menggunakan jumlah iterasi default atau algoritma hash default, pertimbangkan untuk berpindah ke nilai yang lebih aman—yaitu, jumlah perulangan yang lebih besar atau algoritma hash yang lebih baru.

Menyembunyikan peringatan

Jika Anda harus menggunakan API usang, Anda dapat menekan peringatan dalam kode atau dalam file proyek Anda.

Untuk menekan hanya satu pelanggaran, tambahkan direktif praprosedur ke file sumber Anda untuk menonaktifkan lalu mengaktifkan kembali peringatan.

// Disable the warning.
#pragma warning disable SYSLIB0041

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

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

Untuk menekan semua SYSLIB0041 peringatan dalam proyek Anda, tambahkan <NoWarn> properti ke file proyek Anda.

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

Untuk informasi selengkapnya, lihat Menyembunyikan peringatan.