Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đăng nhập PHP bằng dữ liệu MySQL và mật khẩu băm

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ thông tin ngoại lệ / lỗi MySQL Trigger vào Bảng hoặc trong Biến

  2. Làm cách nào để chuyển đổi toàn bộ tập ký tự và đối chiếu của cơ sở dữ liệu MySQL sang UTF-8?

  3. Tải hình ảnh lên cơ sở dữ liệu MySQL bằng Blob

  4. Làm cách nào để chèn tất cả các giá trị cơ sở dữ liệu vào danh sách bảng cột?

  5. Truy vấn hiển thị nhóm hàng dữ liệu cột theo giá trị dữ liệu trong JSON từ php