шифрование — хэши паролей, от php 5.4 до 5.6

У меня есть старая база данных с пользователями и их хэшами паролей, сгенерированными с использованием php 5.4 со следующей функцией:

   password_hash($password, PASSWORD_DEFAULT, 10);

Сейчас я создаю новый веб-сайт с laravel с php 5.6, и я хочу позволить старым пользователям войти в систему с новыми учетными данными.

Тем не менее я понимаю, что PASSWORD_DEFAULT не является алгоритмом bcrypt на PHP < 5.5, но он использует bcrypt в моей новой установке php 5.6.

Как я могу позволить старым пользователям входить в мой сайт без сброса всех их паролей? Это возможно?

2

Решение

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.

В любом случае, это должно «просто работать». Если этого не произойдет, у вас была странная и, возможно, небезопасная настройка с самого начала.

1

Другие решения

Других решений пока нет …