PHP 8.5.0 Alpha 2 available for testing

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 si ocurre un 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

add a note

User Contributed Notes 1 note

up
0
McGlockenshire
11 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