Если вы используете PHP password_hash()
с алгоритмом PASSWORD_DEFAULT
для генерации хеша bcrypt (который, как я полагаю, большой процент людей, читающих этот вопрос), обязательно имейте в виду, чтов будущем password_hash()
может использовать другой алгоритм по умолчанию, и поэтому он может повлиять на длину хэша (но он не обязательно будет длиннее).
Со страницы справочника:
Обратите внимание, что эта константа может изменяться со временем по мере добавления в PHP новых и более сильных алгоритмов.По этой причине длина результата от использования этого идентификатора может меняться со временем.Поэтому рекомендуется сохранить результат в столбце базы данных, который может быть расширен за пределы 60 символов (было бы неплохо выбрать 255 символов).
Использование bcrypt, даже если вы1 миллиард пользователей (то есть, вы в настоящее время конкурируете с Facebook) для хранения 255-байтовых хэшей паролей, это будет всего ~ 255 ГБ данных - размером с небольшой жесткий диск SSD.Крайне маловероятно, что хранение хэша пароля станет узким местом в вашем приложении.Однако в случае, если пространство хранения действительно является по какой-то причине проблемой , вы можете использовать PASSWORD_BCRYPT
, чтобы заставить password_hash()
использовать bcrypt, даже если это не значение по умолчанию.Просто будьте в курсе всех уязвимостей, обнаруженных в bcrypt, и просматривайте примечания к выпуску каждый раз, когда выходит новая версия PHP.Если алгоритм по умолчанию когда-либо изменяется, было бы хорошо рассмотреть почему и принять обоснованное решение, использовать новый алгоритм или нет.