Pengenalan
Keselamatan kata laluan adalah penting dalam mana -mana aplikasi perisian. Loltation dan garam adalah dua teknologi utama untuk melindungi kata laluan yang tidak dibocorkan.Davidhayden Code: Sambungan Asas dan Garam
Serpihan kod Davidhayden menyediakan pelaksanaan asas kata laluan dan garam. Ia menggunakan kelas formsauthentication untuk menyebarkan kata laluan untuk menyimpannya dalam fail konfigurasi. Walau bagaimanapun, untuk gumpalan binari seperti lanjutan dan garam, penukaran antara rentetan dianggap tidak perlu.
kaedah C# alternatif: lanjutan lanjutan dan garam
Kaedah penambahbaikan berikut dari "permulaan Asp.net Security" termasuk beberapa fungsi peningkatan:
Kaedah ini menggunakan algoritma SHA256 yang lebih selamat dan melakukan penyebaran pada array byte dan bukannya rentetan. Ia juga memastikan bahawa garam setiap kata laluan adalah unik.
static byte[] GenerateSaltedHash(byte[] plainText, byte[] salt) { HashAlgorithm algorithm = new SHA256Managed(); byte[] plainTextWithSaltBytes = new byte[plainText.Length + salt.Length]; for (int i = 0; i < plainText.Length; i++) { plainTextWithSaltBytes[i] = plainText[i]; } for (int i = 0; i < salt.Length; i++) { plainTextWithSaltBytes[plainText.Length + i] = salt[i]; } byte[] hash = algorithm.ComputeHash(plainTextWithSaltBytes); return hash; }
Teks boleh ditukar kepada array byte.
Shadles boleh ditukar kepada rentetan denganEncoding.UTF8.GetBytes(string)
Convert.ToBase64String
Garam tidak boleh digunakan semula, dan ia harus disimpan dengan kata laluan yang diletakkan. Convert.FromBase64String
Atas ialah kandungan terperinci Bagaimana saya boleh dengan selamat hash dan kata laluan garam di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!