Sau khi đăng ký, bạn tạo ra một muối duy nhất. Muối đó bây giờ là một phần của hàm băm. Nếu bạn nhìn kỹ, bạn sẽ thấy nó được nhúng vào phần đầu tiên của hàm băm. Để kiểm tra mật khẩu, hãy sử dụng muối của mật khẩu đã băm trước đó, vì vậy bạn đang sử dụng lại cùng một muối.
$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);
if ($correctPasswordHash === $hash) ...
Để làm cho việc này dễ dàng hơn và dễ dàng hơn, hãy sử dụng thư viện password_compat
, gói gọn điều này trong một API dễ sử dụng, cũng sẽ được tích hợp vào phiên bản PHP trong tương lai. Kiểm tra mã nguồn của nó để biết cách sử dụng đúng crypt
, vì có một số cạm bẫy bạn cần phải lưu ý. Thư viện password_compat cũng đang sử dụng so sánh nhị phân tùy chỉnh thay vì ===
đơn giản để ngăn chặn các cuộc tấn công định thời.