Setelah pendaftaran Anda membuat garam yang unik. Garam itu sekarang menjadi bagian dari hash. Jika Anda perhatikan lebih dekat, Anda akan melihatnya tertanam di bagian pertama hash. Untuk memeriksa kata sandi, gunakan garam kata sandi hash sebelumnya, jadi Anda menggunakan garam yang sama lagi.
$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);
if ($correctPasswordHash === $hash) ...
Untuk membuatnya lebih mudah dan lebih mudah, gunakan pustaka password_compat
, yang membungkus ini dalam API yang mudah digunakan, yang juga akan diintegrasikan ke dalam versi PHP yang akan datang. Periksa kode sumbernya untuk penggunaan yang benar dari crypt
, karena ada beberapa jebakan yang perlu Anda tangani. Pustaka password_compat juga menggunakan perbandingan biner khusus alih-alih ===
simple sederhana untuk menggagalkan serangan waktu.