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

Điểm yếu của phương pháp xác thực người dùng này là gì?

Hãy tự giúp mình và sử dụng thư viện tiêu chuẩn để băm mật khẩu của bạn.

Bởi vì bảo mật có xu hướng phức tạp hơn rất nhiều và với nhiều khả năng vô hình hơn hầu hết các lập trình viên có thể giải quyết một mình, sử dụng thư viện tiêu chuẩn hầu như luôn luôn dễ dàng và an toàn nhất (nếu không phải là duy nhất).

Thư viện chuẩn :
Hãy xem: Khung băm mật khẩu PHP di động : phpass và đảm bảo rằng bạn sử dụng CRYPT_BLOWFISH thuật toán nếu có thể.

ví dụ về mã sử dụng phpass (v0.2):

require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

PHPass đã được triển khai trong một số dự án khá nổi tiếng:

  • phpBB3
  • WordPress 2.5+ cũng như bbPress
  • bản phát hành Drupal 7, (mô-đun có sẵn cho Drupal 5 &6)
  • những người khác

Điều tốt là bạn không cần phải lo lắng về các chi tiết, những chi tiết đó đã được lập trình bởi những người có kinh nghiệm và được nhiều người trên internet đánh giá.

Dù bạn làm gì nếu bạn quyết định ' Tôi sẽ tự làm, cảm ơn bạn 'cách tiếp cận, không sử dụng MD5 nữa . Đó là một thuật toán băm tốt, nhưng hoàn toàn bị hỏng vì mục đích bảo mật .

Hiện tại, đang sử dụng crypt , với CRYPT_BLOWFISH là phương pháp hay nhất.
CRYPT_BLOWFISH trong PHP là cách triển khai hàm băm Bcrypt. Bcrypt dựa trên mật mã khối Blowfish, sử dụng thiết lập khóa đắt tiền của nó để làm chậm thuật toán.

Để biết thêm thông tin về các sơ đồ lưu trữ mật khẩu, bạn cũng có thể đọc Jeff `bài đăng trên blog về nó: Có thể bạn đang lưu trữ mật khẩu không chính xác



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để hủy tất cả các quy trình trong danh sách quy trình hiển thị Mysql?

  2. REPLACE không phân biệt chữ hoa chữ thường trong MySQL?

  3. Tôi có thể tìm danh sách mã lỗi SQLException cho MySQL ở đâu?

  4. Ví dụ về mối quan hệ nhiều-nhiều

  5. MYSQL / PHP tìm mục phổ biến nhất liên kết với một mục nhất định