Génère une clé PBKDF2 dérivée du mot de passe fourni

# hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni

### Description

hash_pbkdf2 ( string `$algo` , string `$password` , string `$salt` , int `$iterations` [, int `$length` = 0 [, bool `$raw_output` = `FALSE` ]] ) : string

### Liste de paramètres

`algo`

  Nom de l'algorithme de hashage sélectionné (i.e. md5, sha256, haval160,4, etc..). Voir la fonction hash_algos() pour une liste des algorithmes supportés.

`password`

  Le mot de passe à utiliser pour la dérivation.

`salt`

  Le salt à utiliser pour la dérivation. Cette valeur doit être générée aléatoirement.

`iterations`

  Le nombre d'itérations internes pour effectuer la dérivation.

`length`

  La longueur de la chaîne de sortie. Si le paramètre `raw_output` vaut `TRUE`, ce paramètre correspondra à la longueur, en octets, de la clé dérivée ; si le paramètre `raw_output` 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.

`raw_output`

  Lorsque définit à `TRUE`, la fonction affichera les données binaires brutes. Si vaut `FALSE`, l'affichage se fera en minuscule.

### Valeurs de retour

Retourne une chaîne contenant la clé dérivée en minuscule, à moins que le paramètre `raw_output` ne soit positionné à `TRUE` auquel cas, la représentation binaire brute de la clé dérivée sera retournée.

### Erreurs / Exceptions

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).

### Historique

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.

### Exemples

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);
echo $hash;
?>`

L'exemple ci-dessus va afficher quelque chose de similaire à :

    120fb6cffcf8b32c43e7

### Notes

Attention

La méthode PBKDF2 peut être utilisée pour hasher 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.

### Voir aussi

- crypt() - Hachage à sens unique (indéchiffrable)
- password_hash() - Crée une clé de hachage pour un mot de passe
- hash() - Génère une valeur de hachage (empreinte numérique)
- hash_algos() - Retourne une liste des algorithmes de hachage enregistrés
- hash_init() - Initialise un contexte de hachage incrémental
- hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
- hash_hmac_file() - Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
- openssl_pbkdf2() - Génère une chaîne PKCS5 v2 PBKDF2, par défaut un SHA-1