Menyimpan dan Mengesahkan Kata Laluan dengan Selamat dengan Fungsi Pengurusan Kata Laluan PHP
Berkenaan dengan pengendalian kata laluan dalam aplikasi web, keselamatan adalah yang terpenting. PHP 5.5 memperkenalkan fungsi password_hash() dan password_verify() untuk membantu dengan tugas kritikal ini.
Mencipta Cincang Selamat
Fungsi password_hash() menjana cincang selamat kata laluan yang diberikan menggunakan algoritma seperti BCRYPT. Untuk mencipta cincang, ia memerlukan tiga parameter: kata laluan itu sendiri, algoritma pencincangan (cth., PASSWORD_BCRYPT) dan pelbagai pilihan. Pilihan termasuk menentukan kos (faktor pengiraan) dan garam unik (data yang dijana secara rawak ditambah pada cincang untuk meningkatkan keunikannya).
Menyimpan Kata Laluan dan Garam
Bertentangan dengan pertanyaan awal, pendekatan yang betul adalah untuk menyimpan kedua-dua cincang dan garam dalam pangkalan data. Ini kerana password_hash() mengembalikan rentetan yang mengandungi kedua-dua elemen. Jadi, dalam pernyataan MySQL sebagai contoh:
INSERT INTO users(username, password_hash) VALUES($username, $hashAndSalt);
Pengesahan Kata Laluan
Apabila pengguna log masuk, kata laluan yang mereka masukkan mesti disahkan terhadap cincang yang disimpan. Untuk melakukan ini, dapatkan semula cincang yang disimpan (yang mengandungi cincang dan garam) dan hantarkannya ke password_verify():
if (password_verify($password, $hashAndSalt)) { // Verified }
Langkah Keselamatan Tambahan
Selain itu penggunaan fungsi ini, pertimbangkan langkah keselamatan lain:
Atas ialah kandungan terperinci Bagaimanakah password_hash() dan password_verify() PHP Boleh Menyimpan dan Mengesahkan Kata Laluan dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!