У меня есть старая база данных с пользователями и их хэшами паролей, сгенерированными с использованием php 5.4 со следующей функцией:
password_hash($password, PASSWORD_DEFAULT, 10);
Сейчас я создаю новый веб-сайт с laravel с php 5.6, и я хочу позволить старым пользователям войти в систему с новыми учетными данными.
Тем не менее я понимаю, что PASSWORD_DEFAULT не является алгоритмом bcrypt на PHP < 5.5, но он использует bcrypt в моей новой установке php 5.6.
Как я могу позволить старым пользователям входить в мой сайт без сброса всех их паролей? Это возможно?
password_hash($password, PASSWORD_DEFAULT, 10);
Конечно, вы имеете в виду это?
password_hash($password, PASSWORD_DEFAULT, ['cost' => 10]);
Тем не менее я понимаю, что PASSWORD_DEFAULT не является алгоритмом bcrypt на PHP < 5,5
Это потому что password_hash()
а также password_verify()
не существовало в PHP 5.4. Вы, вероятно, используете ircmaxell / password_compat который предлагает эту функциональность в 5.4. Также, PASSWORD_DEFAULT
это bcrypt в password_compat.
В любом случае, это должно «просто работать». Если этого не произойдет, у вас была странная и, возможно, небезопасная настройка с самого начала.
Других решений пока нет …