Thay vì sử dụng MD5 hoặc cố gắng giải mã mật khẩu - như những người khác ở đây đã đề xuất - chỉ cần sử dụng gốc của PHP password_hash () chức năng tự động kiểm tra xem mật khẩu có đúng với bạn không.
Mã hóa mật khẩu như sau:
$unencrypted_password = 'secret!';
$encrypted_password = password_hash($unencrypted_password, PASSWORD_DEFAULT);
Sau đó, chèn vào DB của bạn như sau:
INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);
Khi bạn muốn kiểm tra xem mật khẩu có đúng không, hãy chọn mật khẩu từ cơ sở dữ liệu với:
SELECT encrypted_password FROM users WHERE username = $username;
Cuối cùng, hãy kiểm tra xem mật khẩu có đúng không bằng cách sử dụng passoword_verify () :
$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
echo 'correct password!';
} else {
echo 'password incorrect!';
}
Hãy cẩn thận để bảo vệ khỏi SQL-injection, vì đoạn mã trên rất dễ bị tấn công.