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

PHP password_verify không hoạt động với cơ sở dữ liệu

\n trong dòng sau, đang nhúng một dấu ngắt dòng, (Chỉnh sửa:một dấu ngắt dòng không thể được đưa vào mật khẩu do người dùng nhập vào) .

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";

và bạn cần xóa nó và bắt đầu lại với một hàm băm mới.

Jay Blanchard , một thành viên ở đây trên Stack đã gửi một ghi chú về nó cũng không quá lâu trong password_hash() hướng dẫn sử dụng, đó là điều mà anh ấy và tôi đã thực sự nói về.

Một tùy chọn khác là sử dụng trim() ; điều đó cũng hoạt động (tại thời điểm băm).

$password = password_hash($pass,  PASSWORD_BCRYPT, $options)."\n";
$password = trim($password);
// Store in db after

Tuy nhiên, bạn vẫn cần phải bắt đầu lại bằng cách xóa (các) hàm băm cũ và tạo các hàm băm mới.

Tuy nhiên, hãy nhớ rằng bạn không nên thoát mật khẩu.

Một ví dụ như 123'\abc (hoàn toàn hợp lệ) sẽ được sửa đổi thành 123\'\abc bởi real_escape_string() ; nó không cần thiết. password_verify() hãy quan tâm đến vấn đề đó, về mặt bảo mật.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thực hiện thay đổi đối với nhiều bản ghi dựa trên sự thay đổi của một bản ghi với SQL

  2. MySQL kết hợp hai ID bảng để tạo kết quả từ bảng này sang bảng khác

  3. Trình phân tích cú pháp SQL trong PHP?

  4. Làm cách nào để gỡ lỗi một truy vấn trong extbase?

  5. Khi bạn tự động tạo các tên miền phụ khi người dùng đăng ký, nó có tạo ra một trang web mới hoặc làm xuất hiện một trang web không?