Как в Symfony 2 раскодить ( decode ) захешированный пароль ( password_hash() )?
Приветствую всех.
Помогите разобраться с ситуацией:
1. Регистрация, авторизация и аутентификация на сайте - все работает.
2. Работает функционал, который при изменении данных ( логин, пароль и т.д. ) отправляет на почту админа обновленные данные пользователя, но не могу понять, как из захешированного с помощью password_hash( $self->getPassword(), PASSWORD_BCRYPT, array( 'cost' => 12 ) ) пароля вытащить сам исходный пароль.
Никак. В том и смысл хэша, что из него невозможно получить изначальный пароль.
Вам даже брутфорс не поможет, если у вас длина пароля больше 3-5 символов.
Если вам нужен сам пароль, то есть только одна возможность получить - использовать тогда же, когда был получен от пользователя, то есть, отправлять админу/пользователю в том же запросе, что и пароль пересоздаётся.
А если пароль нужен позже (например, для функции восстановления пароля), то так не получится - пароль нужно пересоздавать заново.
Если у вас появилась такая необходимость, значит вы что-то делаете не так. Этот алгоритм для того и придуман, чтоб его нельзя было раскодировать.
И не надо хранить пароль в открытом виде. Уведут у вас базу, и у злоумышленника появится доступ ко всем аккаунтам всех ваших пользователей, так как многие для всех сервисов используют одинаковые логин-пароль.
Из-за таких умельцев и приходится иметь отдельные пароли для сомнительных говносайтов.
Не-не, такой вопрос из-за того, что я просто в полной мере не вкурил тему хеширования, в инете много аналогичных вашим ответам. Теперь я полностью уверен, что все нормально. Всем спасибо за ликбез! :)