hash_init

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)

hash_initInicializa un contexto de hachado incremental

Descripción

hash_init(
    string $algo,
    int $flags = 0,
    #[\SensitiveParameter] string $key = "",
    array $options = []
): HashContext

Parámetros

algo

Nombre del algoritmo de hachado seleccionado (por ejemplo: "sha256"). Para una lista de los algoritmos soportados ver hash_algos().

Nota:

Las funciones de hachado no criptográficas no están permitidas si se especifica el flag HASH_HMAC.

flags

Configuraciones opcionales para la generación del hachado, actualmente solo soporta una opción: HASH_HMAC. Cuando esta opción es especificada, el parámetro key debe ser especificado.

key

Cuando HASH_HMAC es especificada para flags, una clave secreta compartida que será utilizada con el método de hachado HMAC debe ser proporcionada en este parámetro.

options

Un array de opciones para los algoritmos diversos de hachado. Actualmente, solo el parámetro "seed" es soportado para las variantes MurmurHash.

Valores devueltos

Retorna el contexto de hachado HashContext para su utilización con hash_update(), hash_update_stream(), hash_update_file() y hash_final().

Errores/Excepciones

  • Levanta una excepción ValueError si el algo es desconocido, si es una función de hachado no criptográfica, o si key está vacío.
  • Pasar opciones de configuración de tipo incorrecto en options emitirá ahora un error E_DEPRECATED, ya que pueden ser mal interpretadas. Esto resultará en una excepción ValueError en el futuro.

Historial de cambios

Versión Descripción
8.4.0 Pasar opciones de un tipo incorrecto está ahora desaconsejado.
8.1.0 El parámetro options ha sido añadido.
7.2.0 El uso de funciones de hachado no criptográficas (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) con HASH_HMAC ha sido desactivado.
7.2.0 Retorna una HashContext en lugar de un recurso. 8.0.0 Levanta una excepción ValueError ahora si el parámetro algo es desconocido o no es una función de hachado criptográfica, o si el parámetro key está vacío. Anteriormente, false era retornado y un mensaje E_WARNING era emitido.

Ejemplos

Ejemplo #1 Ejemplo de hachado incremental

<?php
$hash
= hash('sha256', 'The quick brown fox jumped over the lazy dog.');

$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);

echo
$incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>

El resultado del ejemplo sería:

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
bool(true)

Ver también

  • hash_algos() - Devuelve una lista de los algoritmos de hash registrados
  • hash_update() - Añade datos en el contexto de hash activo
  • hash_update_file() - Se añaden datos en un contexto de hash activo a partir de un fichero
  • hash_update_stream() - Añade datos en un contexto de hash activo de un flujo abierto
  • hash_final() - Finaliza un hachaje incremental y devuelve el resultado de la huella digital

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top