openssl_pbkdf2

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

openssl_pbkdf2Genera una cadena PKCS5 v2 PBKDF2

Descripción

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

openssl_pbkdf2() calcula PBKDF2 (Password-Based Key Derivation Function 2), una función de derivación de clave definida en PKCS5 v2.

Parámetros

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.

Valores devueltos

Devuelve una cadena binaria sin tratar o false en caso de error.

Ejemplos

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";
?>

Ver también