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