Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sistem konfigurasi kriptografi di .NET Framework tidak memungkinkan kelincahan kriptografi yang tepat dan tidak ada di .NET Core dan .NET 5+. Persyaratan kompatibilitas mundur dari .NET juga melarang platform ini untuk memperbarui API kriptografi tertentu agar tetap mengikuti perkembangan dalam bidang kriptografi. Akibatnya, API berikut ditandai usang, mulai dari .NET 5. Penggunaan API ini menghasilkan peringatan SYSLIB0007 pada waktu kompilasi dan PlatformNotSupportedException pada waktu proses.
- System.Security.Cryptography.AsymmetricAlgorithm.Create()
- System.Security.Cryptography.HashAlgorithm.Create()
- System.Security.Cryptography.HMAC.Create()
- System.Security.Cryptography.KeyedHashAlgorithm.Create()
- System.Security.Cryptography.SymmetricAlgorithm.Create()
Penyelesaian masalah
Tindakan yang direkomendasikan adalah mengganti panggilan ke API yang sekarang usang dengan panggilan ke metode pabrik untuk algoritma tertentu, misalnya, Aes.Create(). Ini memberi Anda kontrol penuh atas algoritma mana yang diinstansiasi.
Jika Anda perlu mempertahankan kompatibilitas dengan payload yang ada yang dihasilkan oleh aplikasi .NET Framework yang menggunakan API yang sekarang usang, gunakan penggantian yang disarankan dalam tabel berikut. Tabel menyediakan pemetaan dari algoritma default .NET Framework ke setara .NET 5+.
.NET Framework Pengganti yang kompatibel untuk .NET Core / .NET 5+ Komentar AsymmetricAlgorithm.Create() RSA.Create() HashAlgorithm.Create() SHA1.Create() Algoritma SHA-1 dianggap rusak. Pertimbangkan untuk menggunakan algoritma yang lebih kuat jika memungkinkan. Konsultasikan dengan penasihat keamanan Anda untuk panduan lebih lanjut. HMAC.Create() HMACSHA1() Algoritma HMACSHA1 tidak disarankan untuk sebagian besar aplikasi modern. Pertimbangkan untuk menggunakan algoritma yang lebih kuat jika memungkinkan. Konsultasikan dengan penasihat keamanan Anda untuk panduan lebih lanjut. KeyedHashAlgorithm.Create() HMACSHA1() Algoritma HMACSHA1 tidak disarankan untuk sebagian besar aplikasi modern. Pertimbangkan untuk menggunakan algoritma yang lebih kuat jika memungkinkan. Konsultasikan dengan penasihat keamanan Anda untuk panduan lebih lanjut. SymmetricAlgorithm.Create() Aes.Create()
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 SYSLIB0007
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0007
Untuk menyembunyikan semua peringatan SYSLIB0007 dalam proyek Anda, tambahkan properti <NoWarn> ke file proyek Anda.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0007</NoWarn>
</PropertyGroup>
</Project>
Untuk informasi lebih lanjut, lihat Sembunyikan peringatan.