(PHP 5 >= 5.5.0, PHP 7, PHP 8)
openssl_pbkdf2 — Genera una cadena PKCS5 v2 PBKDF2
$password
,$salt
,$key_length
,$iterations
,$digest_algo
= "sha1"openssl_pbkdf2() calcula PBKDF2 (Password-Based Key Derivation Function 2), una función de derivación de clave definida en PKCS5 v2.
password
Contraseña desde la cual se genera la clave derivada.
salt
PBKDF2 recomienda un sal criptográfico de al menos 128 bits (16 octetos).
key_length
Longitud deseada de la clave de salida.
iterations
El número de iteraciones deseado. » El NIST recomienda al menos 1 000. A partir de 2023, el OWASP recomienda 600 000 iteraciones para PBKDF2-HMAC-SHA256 y 210 000 para PBKDF2-HMAC-SHA512.
digest_algo
Algoritmo de hash o digest opcional a partir de openssl_get_md_methods(). Por omisión SHA-1. Se recomienda definirlo en SHA-256 o SHA-512.
Devuelve una cadena binaria sin tratar o false
en caso de error.
Ejemplo #1 Ejemplo con 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";
?>