Я прочитал на PHP.net, что MD5 бесполезен, и они предлагают использовать crypt + salt.
Итак, я пошел к описанию их функций и прочитал
<?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!";
}
?>
или в моемслучай примерно такой:
$stored_password=fetch_password($user);
if (crypt($_REQUEST['password'],$stored_password)===$stored_password) {
// ok
}
Итак, когда я вижу, что соль хранится в хешированном пароле и что вы используете этот хешированный пароль в качестве соли, я думаю, что Crypt + Salt не является более защищенным от грубой силына выходе (хакеры, которым удалось украсть хешированные пароли).Является ли он более безопасным?
Против атаки по словарю я могу понять ее силу, но для атаки методом "грубой силы" по хешированным паролям я не вижу преимущества.