При регистрации вы получаете пароль от пользовательского ввода и генерируете его с помощью password_hash()
:
$hash = password_hash($_POST['password'], PASSWORD_BCRYPT);
Вы можете предоставить ему обычную соль для использования в третий параметр, но документация рекомендует не делать этого:
Внимание. Настоятельно рекомендуется, чтобы вы не генерировали свою соль для этой функции. Он автоматически создаст безопасную соль для вас, если вы ее не укажете.
blockquote>Вы сохраняете этот хэш в базе данных. Убедитесь, что вы поместите его в поле
CHAR
/VARCHAR
из символов60
или дольше.Когда пользователь хочет войти в систему, вы проверяете пароль, который они вводили против ранее сохраненного хеша, используя
password_verify()
:$auth = password_verify($_POST['password'], $hash);
Конечно, вы получите правильное значение
$hash
из базы данных, выполнив поиск по указанному имени пользователя.Если
$auth
-TRUE
, тогда предоставленный пароль соответствует его хэшу, вычисленному при регистрации, и пользователь аутентифицируется.