Masalahnya adalah… Anda seharusnya menyimpan asin, hash kata sandi
dalam database. Karena ini diasinkan satu per satu per pengguna/sandi, Anda tidak bisa cari langsung dengan password = ?
, karena Anda tidak tahu garamnya dan karena itu tidak dapat menghitung hash yang cocok sebelumnya. Jika Anda melakukannya dengan benar, Anda harus ambil catatan pengguna dengan nama pengguna terlebih dahulu, lalu validasi hash kata sandi menggunakan garam/hash yang diambil. Kode semu:
$user = fetch_from_database($_POST['username']);
if (!$user) {
throw new Exception("User doesn't exist");
}
if (!password_verify($_POST['password'], $user['password_hash'])) {
throw new Exception('Invalid password');
}
echo 'Welcome ', $user['name'];
Lihat http://php.net/password_hash , http://php.net/password_verify .