В чем разница между PASSWORD_DEFAULT и PASSWORD_BCRYPT? Они оба используют алгоритм шифрования Blowfish? Что такое стоимость в алгоритме? Как настроить password_hash в PHP для получения длины 255 хэшей вместо 60?
PASSWORD_DEFAULT против PASSWORD_BCRYPT
Ответы (3)
В настоящее время PASSWORD_BCRYPT
является единственным поддерживаемым алгоритмом (с использованием CRYPT_BLWFISH), поэтому в настоящее время нет разницы между PASSWORD_DEFAULT
и PASSWORD_BCRYPT
. Целью PASSWORD_DEFAULT
является возможность включения дополнительных алгоритмов в будущем, после чего PASSWORD_DEFAULT
всегда будет использоваться для применения самого сильного из поддерживаемых алгоритмов хеширования.
Стоимость связана с количеством выполняемых итераций алгоритма и влияет на скорость вычислений, а также на сгенерированное хеш-значение. Более высокие затраты требуют больше времени для выполнения, что замедляет атаки грубой силы.
one of your answers
Mark, когда гуглил эту тему. Собственно, мой вопрос заключался в том, как хакеры получают пароли mysql php? так как я всегда задавал себе тот же вопрос, что и мой запрос. Если машина вычисляет пароль, разве он не должен сопоставляться с именем пользователя, связанным с ним, и как они вообще получат доступ из БД?... на что я действительно не нашел ответа на эти вопросы .
- person Funk Forty Niner; 14.03.2014
CRYPT_BLWFISH
, PASSWORD_BCRYPT
и PASSWORD_DEFAULT
и обнаружил, что все они имеют то же значение, что и 1, поэтому в настоящее время они должны быть одинаковыми.
- person user1032531; 25.12.2014
Согласно документации, PASSWORD_DEFAULT предназначен для использования в будущем.
Из документов:
PASSWORD_DEFAULT — использовать алгоритм bcrypt (по умолчанию в PHP 5.5.0). Обратите внимание, что эта константа предназначена для изменения со временем, когда в PHP добавляются новые и более сильные алгоритмы. По этой причине длина результата использования этого идентификатора может меняться со временем. Поэтому рекомендуется хранить результат в столбце базы данных, длина которого может превышать 60 символов (хорошим выбором будет 255 символов).
На данный момент нет разницы между PASSWORD_DEFAULT и PASSWORD_BCRYPT (http://www.php.net/manual/en/password.constants.php). Стоимость будет зависеть от количества раундов, в которых будет применяться хэш. Это также объясняется по ссылке выше. Если вы хотите повысить безопасность своего хэша, вам лучше увеличить количество раундов, а не длину.
cost
еще больше снижает эту скорость. - person Mark Baker   schedule 14.03.2014