hash_pbkdf2
hash_pbkdf2
Generate a PBKDF2 key derivation of a supplied password
string **hash_pbkdf2** string $algo string $password string $salt int $iterations int $length bool $binary array $options
algo
Name of selected hashing algorithm (e.g. ).
For a list of supported algorithms see .
`"sha256"``hash_hmac_algos`> **Opmerking:** > Non-cryptographic hash functions are not allowed.
passwordThe password to use for the derivation.
saltThe salt to use for the derivation. This value should be generated randomly.
iterationsThe number of internal iterations to perform for the derivation.
length
The length of the output string. If
is true this corresponds to the byte-length of the derived key, if
is false this corresponds to twice the
byte-length of the derived key (as every byte of the key is returned as
two hexits).
binary``binary
If is passed, the entire output of the supplied
algorithm is used.
`0`
binaryWhen set to true, outputs raw binary data. false outputs lowercase
hexits.
options
An array of options for the various hashing algorithms.
Currently, only the key is
supported by the MurmurHash variants.
"seed"
Returns a string containing the derived key as lowercase hexits unless
is set to true in which case the raw
binary representation of the derived key is returned.
binary
Throws a exception if the algorithm is
unknown, the parameter is less than or
equal to , the is less
than or the is too long
(greater than ).
ValueError``iterations``0``length``0``salt``INT_MAX``- 4
Voorbeeld: example, basic usage
<?php
$password = "password";
$iterations = 600000;
// Generate a cryptographically secure random salt using random_bytes()
$salt = random_bytes(16);
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
var_dump($hash);
// for raw binary, the $length needs to be halved for equivalent results
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true);
var_dump(bin2hex($hash));?>
string(20) "120fb6cffcf8b32c43e7"
string(20) "120fb6cffcf8b32c43e7"
Let op: > The PBKDF2 method can be used for hashing passwords for storage. However, it should be noted that or with are better suited for password storage.
password_hash``crypt``CRYPT_BLOWFISH
password_hash``hash_hkdf``sodium_crypto_pwhash