REFERENCE PHP

dernière mise à jour de la documentation : décembre 2014
.NET | Apache | APC | APD | Tableaux | Aspell | BBCode | BC math | bcompiler | Bzip2 | Calendrier | CCVS | Classes et Objets | Classkit | ClibPDF | COM | Fonctions Crack | ctype | CURL | Cybercash | CyberMUT | Cyrus IMAP | Date/heure | DB++ | DBA | dBase | DBM | dbx | DIO | Dossiers | DOM | DOM XML | enchant | Erreurs | EXIF | Expect | FAM | FDF | Fileinfo | filePro | Système de fichiers | Filter | Firebird/InterBase | Firebird/Interbase (PDO) | FriBiDi | FrontBase | FTP | Fonctions | GeoIP | gettext | GMP | gnupg | gopher | haru | hash | http | Hyperwave | Hyperwave API | i18n | IBM (PDO) | ibm_ db2 | iconv | id3 | Fonctions IIS | Images | Imagick Image Library | IMAP | Informix | Informix (PDO) | Ingres II | Interface IRC | Intégration de Java avec PHP | JSON | kadm5 | LDAP | libxml | Lotus Notes | LZF | Mail | Traitement d'Email | Maths | MaxDB | MCAL | mcrypt | MCVE | Memcache | mhash | Mimetype | Ming (Flash) | Divers | mnoGoSearch | MS SQL Serveur | MS SQL Server (PDO) | Msession | mSQL | Chaînes de caractères multi-octets | muscat | MySQL | MySQL (PDO) | MySQLi | Fonctions ncurses | Réseau | Newt | NSAPI | agrégation d'objets | Surcharge d'objets | OCI8 | ODBC | ODBC et DB2 (PDO) | OGG/Vorbis | openal | OpenSSL | Oracle | Oracle (PDO) | Bufferisation de sortie | OvrimosSQL | Paradox | Parsekit | PCNTL | PCRE | PDF | PDO | phar | Options et informations PHP | POSIX | Regex POSIX | PostgreSQL | PostgreSQL (PDO) | Impressions | Exécution de programmes | PS | Pspell | Fonctions qtdom | radius | Rar | Readline | GNU Recode | RPMReader | runkit | SAM | Satellite | SCA | SDO | SDO DAS XML | SDO-DAS-Relational | Sémaphore | SESAM | Session PgSQL | Sessions | shmop | SimpleXML | SNMP | SOAP | Sockets | spl | SQLite | SQLite (PDO) | ssh2 | statistics | Flux | Chaînes | SVN | SWF | swish | Sybase | TCP Wrappers | Tidy | Tokenizer | Unicode | Fonctions URL | Gestion des variables | Paiement par Verisign | vpopmail | W32api | WDDX | win32ps | win32service | xattr | xdiff | XML | XML-RPC | XMLReader | XMLWriter | XSL | XSLT | YAZ | NIS | Zip | Zlib



hash_pbkdf2

(PHP 5 >= 5.5.0)

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

Description

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

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

Exemples

Exemple #1 Exemple avec hash_pbkdf2()

<?php
$password 
"password";
$iterations 1000;

// Génère un IV aléatoire en utilisant la fonction mcrypt_create_iv(),
// openssl_random_pseudo_bytes() ou tout autre source aléatoire correspondante
$salt mcrypt_create_iv(16MCRYPT_DEV_URANDOM);

$hash hash_pbkdf2("sha256"$password$salt$iterations20);
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é

Exemples d'utilisation