(PHP 8 >= 8.4.0)
openssl_password_hash — Создаёт хеш пароля при помощи Argon2 из OpenSSL
Создаёт хеш пароля при помощи реализации Argon2 из OpenSSL. Это альтернатива функции password_hash(), в которой движком выступает OpenSSL, что в некоторых системах позволяет использовать аппаратное ускорение.
Функция доступна только тогда, когда PHP скомпилирован с поддержкой OpenSSL,
которая включает Argon2 (HAVE_OPENSSL_ARGON2).
algo
Алгоритм хеширования пароля. Поддерживаемые значения:
"argon2id" и "argon2i".
passwordПароль пользователя.
optionsАссоциативный массив (array) опций. Поддерживаемые ключи:
memory_cost — максимальный объём памяти (в КиБ),
который разрешается использовать для вычисления хеша
time_cost — максимальное время, которое разрешается
потратить на вычисление хеша
threads — количество потоков, которые задействуются
при вычислении хеша
Возвращает хеш пароля в виде строки (string).
Выбрасывает исключение ValueError, если значение
параметра algo не входит в список поддерживаемых
("argon2i" или "argon2id").
Выбрасывает исключение Error, если операция хеширования завершается ошибкой по неизвестной причине.
| Версия | Описание |
|---|---|
| 8.4.0 | Функция добавлена. |
Пример #1 Пример использования функции openssl_password_hash()
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password');
echo $hash;
?>Вывод приведённого примера будет похож на:
$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHR2YWx1ZQ$hashvalue...
Пример #2 Использование функции openssl_password_hash() с пользовательскими опциями
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password', [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
?>