Praktik umumnya adalah sebagai berikut:
- Ambil
password
hash dari database tempatusername
=nama pengguna yang dimasukkan. - Jika baris ditemukan, berarti ada pengguna
- Sekarang Anda membandingkan kata sandi yang dimasukkan dengan hash yang disimpan dalam database.
Saya akan menguraikan alur di atas dalam beberapa kode semu untuk Anda di sini:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Catatan
- Berhenti menggunakan
mysql_*
fungsi. Pustaka tidak digunakan lagi karena tidak dapat diandalkan dan akan dihapus pada rilis PHP mendatang.- Sebaiknya Anda menggunakan PDO atau Pernyataan yang Disiapkan MySQLi
- Anda harus selalu membaca manual -
password_verify()
, ini menyatakan dengan jelas bahwa Anda membandingkan "kata sandi yang dimasukkan pengguna" dengan versi hash yang disimpan dalam database Anda.