@Barrakuda74

В поле какого типа (mysql) хранить пароль после password_hash?

На сегодняшний день по умолчанию password_hash кодирует через bcrypt (предположим, его и хочу оставить).
PHP предупреждают, что bcrypt может в дальнейшем увеличиться до 255 символов.
MYSQL, в свою очередь, рекомендует хранить хэши в varbinary или blob.
Так какую оптимально длину указывать полю varbinary? На сколько я понимаю, в поле varbinary 2 байта уходит на указание размера поля. Прихожу к выводу, что оптимальное значение = 257. Но google по "varbinary(257)" что-то вообще ничего не находит по данной теме, следовательно, все используют какое-то другое значение. Так какое же?
  • Вопрос задан
  • 3803 просмотра
Решения вопроса 1
@D3lphi
Измениться может не длина хэша bcrypt, а алгоритм хэширования по-умолчанию (то есть, под PASSWORD_DEFAULT в новых версиях PHP могут подразумеваться алгоритмы, отличный от bcrypt).
Хэши нужно хранить в blob поле только, если сгенерированный хэш находится в бинарном представление (добиться этого можно, передав в функцию hash() последним параметром значение true). Bcrypt же представлен в символьном виде.

Итог: для хранения хэшей bcrypt используем поле VARCHAR(60), а лучше - CHAR(60) - так как строка имеет фиксированную длину.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@danchiksux
Говнокодер
text )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы