(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Inicializa un contexto de hachado incremental
$algo,$flags = 0,$key = "",$options = []
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.
      
Retorna el contexto de hachado HashContext para su utilización con hash_update(), hash_update_stream(), hash_update_file() y hash_final().
algo es desconocido, si es una función de
     hachado no criptográfica, o si key está vacío.
    
   options emitirá ahora un error
     E_DEPRECATED, ya que pueden ser mal interpretadas.
     Esto resultará en una excepción ValueError en el futuro.
    
   
| Versión | Descripción | ||
|---|---|---|---|
| 8.4.0 | Pasar opciones de un tipo incorrecto está ahora desaconsejado. | ||
| 8.1.0 | El parámetro optionsha 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_HMACha 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 algoes desconocido o no es
        una función de hachado criptográfica, o si el parámetrokeyestá vacío.
        Anteriormente,falseera retornado y un mensajeE_WARNINGera emitido. | 
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 ejemplo anterior mostrará:
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483 bool(true)
