Pencincangan Kata Laluan dalam PHP: SHA1, MD5, SHA256 lwn. Bcrypt
Apabila mereka bentuk sistem log masuk PHP yang selamat, pilihan pencincangan kata laluan algoritma adalah penting. Walaupun SHA1, MD5 dan SHA256 telah digunakan secara tradisional, ia terdedah kepada keretakan kerana pengiraan pantas mereka.
Cadangan: Gunakan Bcrypt Sebaliknya
Untuk keselamatan optimum, adalah disyorkan untuk meninggalkan algoritma pencincangan yang disebutkan dan sebaliknya menggunakan bcrypt. Bcrypt direka bentuk untuk menjadi intensif dari segi pengiraan, menjadikannya sangat tahan terhadap keretakan.
Pelaksanaan bcrypt dalam PHP
PHP 5.5 dan kemudiannya menyediakan fungsi terbina dalam untuk pencincangan bcrypt:
<code class="php">// Creating a hash $hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]); // Verifying the password against the stored hash if (password_verify($password, $hash)) { // Success! Log the user in. }</code>
Menjana Garam
Bcrypt secara automatik menjana garam menggunakan penjana nombor pseudorandom (CSPRNG) yang selamat secara kriptografi. Oleh itu, adalah tidak perlu untuk menjana dan menggabungkan garam secara manual dengan kata laluan.
Awas dengan bcrypt
Untuk mengurangkan isu ini, elakkan menggunakan perpustakaan pencincangan kata laluan yang pra-cincang kata laluan sebelum menjalankannya melalui bcrypt. Sebaliknya, pilih perpustakaan bereputasi seperti ZendCrypt atau PasswordLock yang mengendalikan pencincangan dengan selamat.
Kesimpulan
Walaupun SHA1, MD5 dan SHA256 pernah dianggap sebagai algoritma pencincangan yang boleh diterima, ia adalah tidak lagi disyorkan untuk log masuk PHP kerana kerentanan mereka terhadap retak. Bcrypt telah muncul sebagai pilihan pilihan untuk storan kata laluan selamat, menawarkan tahap perlindungan yang lebih tinggi terhadap akses tanpa kebenaran.
Atas ialah kandungan terperinci Algoritma Hashing Kata Laluan Mana yang Terbaik untuk Log Masuk PHP Selamat: SHA1, MD5, SHA256 atau bcrypt?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!