md5 всегда был небезопасен для хэширования паролей. md5 создан, чтобы вычисляться быстро. А для хэширования пароля нужна обратная характеристика - он должен считаться долго.
freelsd пишет:Какой алгоритм лучше использовать?
А что, есть много вариантов? http://php.net/manual/en/password.constants.php
BCRYPT и default, т.е. тот же самый bcrypt.
Используйте default, плюс сразу добавьте обработку password_needs_rehash. Когда добавится другой алгоритм и дефолт поменяется - вам не придётся модифицировать приложение.
Можно cost покрутить, но лучше не надо, если точно не знаете, что это даст.
freelsd пишет:И содержит ли в себе выходной хеш все данные, которые понадобятся потом для использования в проверяющей функции?
Да, содержит. И используемый алгоритм, и хэш пароля и используемую соль. В общем - всё. Потому поле в базе рекомендуется делать в 255 символов.
|