Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник PHP

password_hash

Создаёт хеш пароля для хранения в базе.

Синтаксис

password_hash(string $password, string|int|null $algo, array $options = []): string

Параметры

ПараметрТипОписание
$passwordstringПароль пользователя.
$algostring|int|nullАлгоритм; указывайте `PASSWORD_DEFAULT`.
$optionsarrayНеобязательный. Настройки алгоритма.

Возвращаемое значение

stringХеш длиной около 60 символов.

Примеры

Хеш каждый раз разный, даже для одного пароля:

<?php
 
echo password_hash('secret', PASSWORD_DEFAULT);

Проверка пароля:

<?php
 
$hash = password_hash('secret', PASSWORD_DEFAULT);
 
var_dump(password_verify('secret', $hash));
var_dump(strlen($hash) >= 60);

Результат:

bool(true)
bool(true)

Примечания

Под хеш в базе отводите столбец на 255 символов: длина может вырасти со сменой алгоритма. Функции md5() и sha1() для паролей непригодны.

См. также

  • password_verify — Проверяет, соответствует ли пароль хешу.
  • random_int — Возвращает случайное целое число из диапазона.

Вопросы и ответы по теме

В учебнике

  • Безопасность — Основы безопасности сайта на PHP — XSS и экранирование, SQL-инъекции, хеширование паролей, CSRF-токены и проверка входных данных.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.