Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat meningkatkan hashing dan salting kata laluan di C# untuk prestasi yang lebih baik?
Mengoptimumkan Hashing Kata Laluan dan Salting di C#
Keselamatan kata laluan yang teguh sangat bergantung pada hashing dan salting yang berkesan. Walaupun kaedah sedia ada wujud, mereka sering melibatkan penukaran rentetan yang memberi kesan negatif terhadap prestasi. Artikel ini membentangkan pendekatan yang lebih efisien menggunakan operasi binari langsung di C#.Kod berikut menunjukkan kaedah halus:
<code class="language-csharp">static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt) { using (HashAlgorithm algorithm = new SHA256Managed()) { byte[] plainTextWithSaltBytes = new byte[plainText.Length + salt.Length]; Array.Copy(plainText, plainTextWithSaltBytes, plainText.Length); Array.Copy(salt, 0, plainTextWithSaltBytes, plainText.Length, salt.Length); return algorithm.ComputeHash(plainTextWithSaltBytes); } }</code>Kaedah yang lebih baik ini secara langsung menggabungkan kata laluan plaintext dan garam sebagai tatasusunan byte sebelum hashing, menghapuskan overhead penukaran rentetan. Ini membawa kepada peningkatan prestasi yang signifikan.
ingat: Setiap kata laluan mesti mempunyai garam yang unik, disimpan dengan selamat bersama hash yang sepadan. Secara langsung membandingkan array byte menggunakan rujukan
rujukan, bukan nilai. Gunakan fungsi perbandingan array byte yang berdedikasi (seperti ==
dari SequenceEqual
) untuk pengesahan yang tepat. System.Linq
Atas ialah kandungan terperinci Bagaimanakah saya dapat meningkatkan hashing dan salting kata laluan di C# untuk prestasi yang lebih baik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!