openssl_password_hash
(PHP 8 >= 8.4.0)
openssl_password_hash — 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
algo-
The password hashing algorithm. Supported values:
"argon2id"and"argon2i". password-
The user's password.
options-
An associative array of options. Supported keys:
-
memory_cost- Maximum memory (in KiB) that may be used to compute the hash -
time_cost- Maximum amount of time it may take to compute the hash -
threads- 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
Example #1 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...
Example #2 openssl_password_hash() with custom options
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password', [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
?>See Also
- openssl_password_verify() - Verify a password against a hash using OpenSSL's Argon2 implementation
- password_hash() - Creates a password hash