(PHP 5 >= 5.5.0, PHP 7, PHP 8)
hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni
$algo,$password,$salt,$iterations,$length = 0,$binary = false
algo
       Nom de l'algorithme de hachage sélectionné
       (i.e. md5, sha256,
       haval160,4, etc..).
       Voir la fonction hash_algos() pour une liste
       des algorithmes supportés.
      
passwordLe mot de passe à utiliser pour la dérivation.
saltLe salt à utiliser pour la dérivation. Cette valeur doit être générée aléatoirement.
iterationsLe nombre d'itérations internes pour effectuer la dérivation.
length
       La longueur de la chaîne de sortie. Si le paramètre
       binary vaut true, ce paramètre
       correspondra à la longueur, en octets, de la clé dérivée ; si
       le paramètre binary vaut false,
       il correspondra à deux fois la longueur, en octets, de la clé
       dérivée (vu que chaque octet de la clé est retournée sur
       deux hexits).
      
       Si 0 est passé, la sortie complète de l'algorithme
       choisi sera utilisée.
      
binary
       Lorsque définit à true, la fonction affichera les données
       binaires brutes. Si vaut false, l'affichage se fera
       en minuscule.
      
   Retourne une chaîne contenant la clé dérivée en minuscule,
   à moins que le paramètre binary ne
   soit positionné à true auquel cas, la représentation binaire brute
   de la clé dérivée sera retournée.
  
   Une alerte de type E_WARNING sera émise si
   l'algorithme n'est pas connu, si le paramètre iterations
   est inférieur ou égal à 0, si la longueur
   length est inférieure ou égale à 0
   ou si le salt est trop long
   (plus grand que INT_MAX - 4).
  
| Version | Description | 
|---|---|
| 7.2.0 | L'utilisation de fonctions de hachage non cryptographiques (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) a été désactivée. | 
Exemple #1 Exemple avec hash_pbkdf2()
<?php
$password = "password";
$iterations = 1000;
// Génère un IV aléatoire en utilisant la fonction openssl_random_pseudo_bytes(),
// random_bytes() ou tout autre source aléatoire correspondante
$salt = openssl_random_pseudo_bytes(16);
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
var_dump($hash);
// Pour du binaire brute, $length doit être divisé par deux pour des résultats équivalent
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true);
var_dump(bin2hex($hash));
?>
Résultat de l'exemple ci-dessus est similaire à :
string(20) "120fb6cffcf8b32c43e7" string(20) "120fb6cffcf8b32c43e7"
    La méthode PBKDF2 peut être utilisée pour hacher des mots de passe
    pour le stockage. Cependant, vous devez garder à l'esprit que
    la fonction password_hash() ou la fonction
    crypt() avec la constante CRYPT_BLOWFISH
    est meilleur pour cet usage.