PHP 8.4.2 Released!

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

openssl_pbkdf2Génère une chaîne PKCS5 v2 PBKDF2

Description

openssl_pbkdf2(
    #[\SensitiveParameter] string $password,
    string $salt,
    int $key_length,
    int $iterations,
    string $digest_algo = "sha1"
): string|false

openssl_pbkdf2() calcule PBKDF2 (Password-Based Key Derivation Function 2), une fonction de dérivation de clé définit dans PKCS5 v2.

Liste de paramètres

password

Mot de passe depuis lequel la clé dérivé est générée.

salt

PBKDF2 recommande un sel cryptographique d'au moins 128 bits (16 octets).

key_length

Longueur désirée de la clé de sortie.

iterations

Le nombre d'itérations désiré. » Le NIST recommande au moins 1 000. À partir de 2023, l'OWASP recommande 600 000 itérations pour PBKDF2-HMAC-SHA256 et 210 000 pour PBKDF2-HMAC-SHA512.

digest_algo

Algorithme de hachage ou de digest optionnel à partir de openssl_get_md_methods(). Par défaut SHA-1. Il est recommandé de le définir sur SHA-256 ou SHA-512.

Valeurs de retour

Retourne une chaîne binaire brute ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pbkdf2()

<?php
$password
= 'password';
$salt = openssl_random_pseudo_bytes(16);
$keyLength = 20;
$iterations = 600000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo
bin2hex($generated_key)."\n";
echo
base64_encode($generated_key)."\n";
?>

Voir aussi

add a note

User Contributed Notes 1 note

up
0
McGlockenshire
10 years ago
Despite the manual claiming that this is available in PHP 5.5 and above, this function wasn't made available in my local install.

I expect that having a prehistoric OpenSSL library version installed is the likely culprit.

If you're using PHP 5.5 and don't have this function available in your OpenSSL extension, look at the functionally equivalent hash_pbkdf2 function instead.
To Top