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

Mật khẩu băm bằng crypt không hoạt động khi đăng nhập, nó hiển thị sai mật khẩu

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.



  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 cung cấp các truy vấn mysql từ bash

  2. Tạo các thủ tục được lưu trữ với PDO trong PHP

  3. doct2 và group_concat

  4. Cách thay đổi hàng loạt Bộ kích hoạt MySQL DEFINER

  5. Cách quản lý các phiên trong Node.js bằng Passport, Redis và MySQL