PHP.nl

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