Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah PBKDF2 Menyimpan Kata Laluan Selamat dalam .NET (2012)?

Bagaimanakah PBKDF2 Menyimpan Kata Laluan Selamat dalam .NET (2012)?

Linda Hamilton
Lepaskan: 2025-01-23 12:41:10
asal
828 orang telah melayarinya

How PBKDF2 Protects Passwords in .NET (2012)

Keselamatan Kata Laluan: Melangkaui Penyulitan Mudah

Menyimpan kata laluan menggunakan penyulitan mudah adalah tidak mencukupi. Hashing, fungsi kriptografi sehala, menyediakan penyelesaian yang lebih kukuh dengan menukar kata laluan kepada nilai panjang tetap yang unik, tidak boleh diterbalikkan.

Pengendalian Kata Laluan Selamat pada 2012: Amalan Terbaik

Pada tahun 2012, PBKDF2 (Fungsi Terbitan Kunci Berasaskan Kata Laluan 2) ialah algoritma yang disyorkan untuk aplikasi .NET. Kelas Rfc2898DeriveBytes memudahkan proses pencincangan yang selamat melalui langkah utama ini:

Langkah 1: Penjanaan Garam

<code class="language-csharp">byte[] salt = new byte[16];
new RNGCryptoServiceProvider().GetBytes(salt);</code>
Salin selepas log masuk

Langkah 2: Penciptaan Hash

<code class="language-csharp">var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 100000);
byte[] hash = pbkdf2.GetBytes(20);</code>
Salin selepas log masuk

Langkah 3: Menggabungkan Garam dan Hash

<code class="language-csharp">byte[] hashBytes = new byte[36];
Array.Copy(salt, 0, hashBytes, 0, 16);
Array.Copy(hash, 0, hashBytes, 16, 20);</code>
Salin selepas log masuk

Langkah 4: Pengekodan Base64 untuk Storan

<code class="language-csharp">string savedPasswordHash = Convert.ToBase64String(hashBytes);</code>
Salin selepas log masuk

Langkah 5: Pengesahan Kata Laluan

<code class="language-csharp">byte[] hashBytes = Convert.FromBase64String(savedPasswordHash);
byte[] salt = new byte[16];
Array.Copy(hashBytes, 0, salt, 0, 16);
var pbkdf2 = new Rfc2898DeriveBytes(password, salt, 100000);
byte[] hash = pbkdf2.GetBytes(20);

// Compare hash values here...</code>
Salin selepas log masuk

Kiraan lelaran (100000 dalam contoh ini) dalam PBKDF2 mengawal kos pengiraan retak. Walaupun 10000 adalah minimum yang dicadangkan, laraskan nilai ini berdasarkan keperluan prestasi aplikasi anda. Kiraan lelaran yang lebih tinggi meningkatkan keselamatan tetapi boleh menjejaskan kelajuan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah PBKDF2 Menyimpan Kata Laluan Selamat dalam .NET (2012)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan