Вопрос по функции хеширования паролей?

В мануале php.net/manual/ru/function.password-hash.php пример:
password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

И примечание:
PASSWORD_DEFAULT - используется алгоритм bcrypt (по умолчанию с PHP 5.5.0). Обратите внимание, что используемый алгоритм может со временем меняться на более сильный, когда таковой добавляется в PHP. Соответственно и длина результата может со временем меняться. В связи с этим рекомендуется выбирать длину поля для хранения в базе данных более 60 символов (255 символов могло быть хорошим вариантом).

Значит ли это что однажды при переезде на более новую версию PHP старые юзеры не смогут попасть в БД без пересоздания пароля, т.к. алгоритм изменился. Пароль он будет хешировать новым методом, но сравнивать с хешем в БД полученным старым методом?
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 2
BoShurik
@BoShurik
Symfony developer
Нет
php.net/manual/ru/function.password-hash.php

Использованный алгоритм, стоимость и соль будут возвращены как часть хеша. Таким образом, информация необходимая для проверки хеша будет в него включена. Это позволит функции password_verify() проверять хеш без необходимости отдельного хранения информации о соли и алгоритме.
Ответ написан
Stalker_RED
@Stalker_RED
Да. Поэтому вы можете сразу указать PASSWORD_BCRYPT, либо когда-нибудь потом при переезде указать (если нужно будет).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы