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

Mật khẩu không được xác minh bằng cách sử dụng hàm password_verify

Người ta không thể tìm kiếm mật khẩu băm trong cơ sở dữ liệu. Để tính toán băm, bạn cần hàm password_hash () như bạn đã làm đúng trong câu lệnh chèn của mình.

// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);

Để kiểm tra mật khẩu, trước tiên bạn chỉ cần tìm kiếm theo tên người dùng (đã sử dụng truy vấn đã chuẩn bị sẵn để tránh tiêm sql):

$sql = 'select * from admin where username = ?';
$db->prepare($sql);
$db->bind_param('s', $first);

Cuối cùng khi bạn đã nhận được băm được lưu trữ từ cơ sở dữ liệu, nó có thể được kiểm tra như sau:

// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MysqlDump từ mã hóa Powershell và Windows

  2. Sử dụng backquote / backticks cho các truy vấn mysql

  3. đặt classpath để kết nối giữa mysql với jdbc

  4. Hướng dẫn thiết kế cơ sở dữ liệu cho hệ thống mạng xã hội trong MySQL

  5. Xóa tất cả các hàng trùng lặp ngoại trừ một hàng trong MySQL?