Задать вопрос
@e-hot

Как в Symfony 2 раскодить ( decode ) захешированный пароль ( password_hash() )?

Приветствую всех.
Помогите разобраться с ситуацией:
1. Регистрация, авторизация и аутентификация на сайте - все работает.
2. Работает функционал, который при изменении данных ( логин, пароль и т.д. ) отправляет на почту админа обновленные данные пользователя, но не могу понять, как из захешированного с помощью password_hash( $self->getPassword(), PASSWORD_BCRYPT, array( 'cost' => 12 ) ) пароля вытащить сам исходный пароль.

Кто знает, подскажите. Спасибо.
  • Вопрос задан
  • 299 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
lexxpavlov
@lexxpavlov
Программист, преподаватель
Никак. В том и смысл хэша, что из него невозможно получить изначальный пароль.
Вам даже брутфорс не поможет, если у вас длина пароля больше 3-5 символов.

Если вам нужен сам пароль, то есть только одна возможность получить - использовать тогда же, когда был получен от пользователя, то есть, отправлять админу/пользователю в том же запросе, что и пароль пересоздаётся.

А если пароль нужен позже (например, для функции восстановления пароля), то так не получится - пароль нужно пересоздавать заново.
Ответ написан
Комментировать
@jaxel
Если у вас появилась такая необходимость, значит вы что-то делаете не так. Этот алгоритм для того и придуман, чтоб его нельзя было раскодировать.

И не надо хранить пароль в открытом виде. Уведут у вас базу, и у злоумышленника появится доступ ко всем аккаунтам всех ваших пользователей, так как многие для всех сервисов используют одинаковые логин-пароль.

Из-за таких умельцев и приходится иметь отдельные пароли для сомнительных говносайтов.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
захешированный пароль

никак, только брутфорсом коллизию можно подобрать, что в случае BCRYPT сильно долго будет.

Что вам нужно сделать - запоминать исходных пороль до хэширования. И все. А лучше вообще как-то сделать так что бы не высылать его никуда.
Ответ написан
Ваш ответ на вопрос

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

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