hash_hkdf
En esta página
hash_hkdf
Genera una derivación de clave HKDF a partir de una clave de entrada proporcionada
Descripción#
#[\SensitiveParameter] hash_hkdf(string $algo, string $key, [int $length], [string $info], [string $salt]): string
```php
## Parámetros
`algo`
Nombre del algoritmo hash seleccionado (por ejemplo, `"sha256"`). Para ver una lista de algoritmos soportados, consulte `hash_hmac_algos`.
> [!NOTE]
> No se permiten funciones hash no criptográficas.
`key`
Material de clave de entrada (binario sin tratar). No puede estar vacío.
`length`
Longitud deseada de la salida en bytes. No puede ser mayor que 255 veces el tamaño de la función hash elegida.
Si `length` es `0`, la longitud de salida será por omisión el tamaño de la función hash elegida.
`info`
String de información específica de la aplicación/contexto.
`salt`
Salt a utilizar durante la derivación.
Aunque es opcional, añadir un salt aleatorio mejora significativamente la robustez de HKDF.
## Valores devueltos
Devuelve un string que contiene una representación binaria sin tratar de la clave derivada (también conocida como material de clave de salida - OKM).
## Errores/Excepciones
Lanza una excepción `ValueError` si `key` está vacío, `algo` es desconocido/no criptográfico, `length` es menor que `0` o demasiado grande (mayor que 255 veces el tamaño de la función hash).
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | Ahora lanza una excepción `ValueError` en caso de error. Anteriormente, se devolvía `false` y se emitía un mensaje `E_WARNING`. |
## Ejemplos
El ejemplo siguiente produce un par de claves separadas, adecuadas para crear una construcción de tipo encrypt-then-HMAC, utilizando AES-256 y SHA-256 para cifrado y autenticación respectivamente.
Ejemplo de `hash_hkdf`
```php
Véase también#
hash_pbkdf2, RFC 5869, implementación en espacio de usuario