ГРУППА КУРСА
|
Главная >
Учебник PHP >
Хеширование паролейХеширование - это шифрование короткой строки. В результате получается другая строка определённой длины, например 32 символа. Обычно делают хэширование паролей. Способов расшифровки хешированного пароля нет. Возможен только подбор. Поэтому хранение паролей в таком виде безопаснее, чем в обычном. В PHP есть несколько функций для хэширования строки. Раньше самой распространённой была функция md5(). Но она работает слишком быстро и позволяет достаточно быстро подобрать пароль. Поэтому использовать её нежелательно. Наиболее удобной функцией является password_hash() с алгоритмом хеширования PASSWORD_BCRYPT. Она возвращает строку в зашифрованном виде. password_hash (пароль, алгоритм, настройки) Параметры:
пароль - пароль, который хешируется алгоритм - алгоритм хеширования. Принимает значения: PASSWORD_DEFAULT и PASSWORD_BCRYPT. настройки - настройки функции. Их менять не рекомендуется Пример: +
Запустите скрипт и посмотрите, как выглядит хешированная строка. Когда пользователь авторизуется на сайте и вводит пароль, его нужно сравнить с хэшированной строкой. Для этого есть функция password_verify(). Она возвращает true, если строка совпадает с паролем, зашифрованным функцией password_hash(), и false, если строка не соответствует паролю. password_verify (пароль, хешированная строка) Параметры:
пароль - пароль, введённый пользователем хешированная строка - строка, с которой сравнивается пароль Добавим в скрипт проверку введённого пароля:
При хешировании применяется соль. Эта информация не имеет практического значения, потому что функция password_hash() добавляет соль автоматически. Но Вы можете встретить этот термин, и нужно знать, что он означает. Соль - это набор символов, который добавляется к паролю перед хешированием. Она используется потому, что есть возможность расшифровать строку. Это делают с помощью баз данных, которые содержат огромное количество паролей и соответствующих им хешированных строк. Использование соли делает расшифровку сложнее. Расшифрованная строка не совпадает с паролем, потому что она имеет лишние символы. Авторизоваться с помощью расшифрованной строки не получится, она не соответствует паролю. Хеширование обычно применяется в функциях регистрации и авторизации пользователей. Всегда нужно использовать хеширование паролей. Хранение паролей в незашифрованном виде делает сайт небезопасным и позволяет злоумышленникам получить доступ к данным пользователей и совершать нежелательные действия с их аккаунтов. Это может испортить репутацию Вашему сайту. |