Какие команды php для создания и восстановления пароля с шифрованием SHA-256? - PullRequest
2 голосов
/ 19 апреля 2011

Новичок здесь.Я пытаюсь зашифровать пароль пользователя с помощью SHA-256 после того, как он создал свою учетную запись, а затем, когда пользователь пытается войти в систему, он попытается сопоставить их ввод с любым из зашифрованных паролей в базе данных mysql.Мне было интересно, может ли кто-нибудь дать мне пример кода?

Ответы [ 2 ]

6 голосов
/ 19 апреля 2011

Хеширование работает в одностороннем порядке, поэтому вы не можете «извлечь» то, что хэшировали.

Когда вы сохраняете пароль при регистрации, используйте что-то вроде этого:

$hash=hash('sha256', $password);

Итолько сохранить $hash в базе данных.Когда пользователь пытается войти в систему, хэшируйте пароль, который он пытается использовать, и сравнивайте его с паролем в базе данных (хеширование всегда даст один и тот же результат для одного и того же ввода).Если они совпадают, он может войти в систему (если все дополнительные проверки выполнены).

Если вы хотите, чтобы пользователь мог восстановить свой забытый проход, обратитесь к этому более раннему вопросу .

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

0 голосов
/ 15 августа 2014

Если вы используете PHP> = 5.5, вы должны использовать password_hash() для хранения паролей и password_verify() для проверки. Если вы используете PHP> = 5.3, вы должны использовать этот модуль совместимости . Если вы используете более раннюю версию PHP, вам следует обновить.

Не катите свой собственный хэши паролей. Этого недостаточно, чтобы подчеркнуть. Взгляните на John the Ripper , чтобы увидеть, как быстро можно взломать пароли, которые были хешированы только с помощью криптографических хешей (которые предназначены для быстрой работы!)

...