Комментарии 14
То есть теперь надо не только проверить пароль, но еще и проверить, а не изменился ли алгоритм.
Не совсем понятно, что будет, если изменится PASSWORD_DEFAULT.
Не совсем понятно, что будет, если изменится PASSWORD_DEFAULT.
password_verify($password, $hash)
вернет FALSE? А что вернет password_needs_rehash($hash, PASSWORD_DEFAULT)
?Ни разу не писал на PHP, но почему-то кажется, исходя из наличия метода password_get_info(), что в $hash хранится алгоритм, и эти сведения используются в password_verify
password_verify — не зависит от PASSWORD_DEFAULT, так как алгоритм по которому получен хеш вместе с параметрами храниться в самой переменной $hash.
Поэтому если password_verify вернул FALSE, то значит пароль не верный. А если пароль правильный, тогда можно сделать проверку не обновился ли алгоритм password_needs_rehash, и тогда сохранить новый хеш.
Поэтому если password_verify вернул FALSE, то значит пароль не верный. А если пароль правильный, тогда можно сделать проверку не обновился ли алгоритм password_needs_rehash, и тогда сохранить новый хеш.
Что сложного то нашли в crypt? простая как две копейки
<?php $hash = md5($password . $salt); // works, but dangerous
А если так:
$hash = md5($password .md5($salt));
$hash = md5(md5($password) .md5($salt));
???Абсолютно то же самое
Специально проверил:
Абсолютно не тоже самое…
<?php
$password = 'vnkG767dfd';
$salt = 'vnsiRfdR45';
$hash1 = md5($password . $salt); //43a47c25ddeb356f4f01889a06bb01ff
$hash2 = md5($password .md5($salt));//ac34660393373c58cc33d295c2b8202b
$hash3 = md5(md5($password) .md5($salt));//67ba6ba0ec1fa56c9857ccf75a462ce3
Абсолютно не тоже самое…
1. Слишком быстро.
2. md5 x md5 увеличивает вероятность коллизий.
2. md5 x md5 увеличивает вероятность коллизий.
Использующие phpldapadmin с этой функцией уже немного познакомились, благо связанная с этим проблема легко исправима.
Что дает, кроме нагрузки на сервер и времени хеширования/проверки, увеличение cost?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Хэширование паролей в PHP 5.5 с использованием нового API