Tôi đọc trên PHP.net rằng MD5 là vô ích, và họ đề nghị sử dụng crypt + muối.Mã hóa và muối an toàn hơn MD5 như thế nào so với tấn công bạo lực?
Vì vậy, tôi đã đi để mô tả chức năng của họ và đọc
<?php
$password = crypt('mypassword'); // let the salt be automatically generated
/* You should pass the entire results of crypt() as the salt for comparing a
password, to avoid problems when different hashing algorithms are used. (As
it says above, standard DES-based password hashing uses a 2-character salt,
but MD5-based hashing uses 12.) */
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}
?>
hoặc trong trường hợp của tôi như:
$stored_password=fetch_password($user);
if (crypt($_REQUEST['password'],$stored_password)===$stored_password) {
// ok
}
Vì vậy, khi tôi thấy rằng muối được lưu trữ trong các mật khẩu băm và rằng bạn sử dụng mật khẩu băm như muối, tôi nghĩ rằng Crypt + Salt không an toàn hơn chống lại một lực lượng vũ phu trên đầu ra (tin tặc đã quản lý để ăn cắp mật khẩu băm). Nó có an toàn hơn không?
Chống lại một cuộc tấn công từ điển, tôi có thể hiểu sức mạnh của nó, nhưng đối với một cuộc tấn công bạo lực trên mật khẩu băm, tôi không thấy lợi thế.
Một muối sẽ giúp chống lại một cuộc tấn công bạo lực vũ phu truyền thống, vì hacker sẽ phải xây dựng một từ điển điều chỉnh muối. Nếu một người sử dụng muối duy nhất sẽ được sử dụng, sau đó mỗi người dùng sẽ phải có từ điển riêng của mình. – Zar
Từ điển không được sử dụng trong cuộc tấn công bạo lực truyền thống. – MrGlass