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

Mã hóa mật khẩu và tạo muối Crypt (), được thực thi tốt?

Có một số điểm có thể được cải thiện, nhưng trước tiên tôi khuyên bạn nên sử dụng chức năng mới của PHP password_hash () . Hàm này sẽ tạo một muối an toàn và đưa nó vào giá trị băm kết quả, vì vậy bạn có thể lưu trữ nó trong một trường cơ sở dữ liệu. Cũng tồn tại một gói tương thích cho các phiên bản trước đó.

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

// 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);

Một số suy nghĩ về mã của bạn:

  1. Bạn tạo một mã băm BCrypt với crypt (), vì vậy muối sẽ là một phần của hàm băm kết quả. Không cần phải lưu trữ riêng.
  2. Việc tạo muối có thể được cải thiện, sử dụng nguồn ngẫu nhiên của hệ điều hành MCRYPT_DEV_URANDOM.
  3. Nếu bạn thay đổi hệ số chi phí thành 9, thì định dạng sẽ trở nên không hợp lệ, vì crypt yêu cầu hai chữ số.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django đặt Công cụ lưu trữ &Bộ mã mặc định

  2. codeigniter thêm IS NULL trong find_in_set

  3. Doctrine:VỀ CẬP NHẬT KHÓA DUPLICATE

  4. Node Mysql không thể yêu cầu truy vấn sau khi gọi thoát

  5. PHP MySQL qua SSL. Chứng chỉ ngang hàng không khớp