openssl_password_hash
(PHP 8 >= 8.4.0)
Create a password hash using OpenSSL's Argon2 implementation
Description
Creates a password hash using OpenSSL's Argon2 implementation. This is an alternative to password_hash() that uses OpenSSL as the backend, which may offer hardware acceleration on some platforms.
This function is only available when PHP is compiled with OpenSSL support that includes Argon2 (HAVE_OPENSSL_ARGON2).
Parameters
algoThe password hashing algorithm. Supported values:
"argon2id"and"argon2i".passwordThe user's password.
optionsAn associative Array of options. Supported keys:
memory_cost- Maximum memory (in KiB) that may be used to compute the hashtime_cost- Maximum amount of time it may take to compute the hashthreads- Number of threads to use for computing the hash
Return Values
Returns the password hash as a String.
Errors/Exceptions
Throws a ValueError if algo is not one of the supported values ("argon2i" or "argon2id").
Throws an Error if the hashing operation fails for an unknown reason.
Changelog
| Version | Description |
|---|---|
| 8.4.0 | Function added. |
Examples
openssl_password_hash() example
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password');
echo $hash;
?>The above example will output something similar to:
$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHR2YWx1ZQ$hashvalue...openssl_password_hash() with custom options
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password', [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
?>