(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialisiert einen schrittweisen Hashing-Kontext
$algo,$flags = 0,$key = "",$options = []
algo
       Der Name des gewählten Hash-Algorithmus (z. B.
       "sha256"). Für eine Liste der unterstützten
       Algorithmen, siehe hash_algos().
       
Hinweis:
Wenn das Flag
HASH_HMACangegeben ist, sind nicht-kryptografische Hash-Funktionen nicht erlaubt.
flags
       Optionale Einstellungen für die Erzeugung von Hashes. Aktuell wird nur
       eine Option unterstützt: HASH_HMAC. Wenn diese
       gesetzt ist, muss der Parameter
       key angegeben werden.
      
key
       Ein geheimer Schlüssel zur Verwendung mit dem HMAC-Verfahren. Wenn
       HASH_HMAC bei flags
       angegeben ist, muss key angegeben werden.
      
options
       Ein Array mit Optionen für die verschiedenen Hash-Algorithmen. Derzeit
       wird von den MurmurHash-Varianten nur der Parameter
       "seed" unterstützt.
      
Gibt einen Hashing-Kontext zur Nutzung mit hash_update(), hash_update_stream(), hash_update_file(), und hash_final() zurück.
algo nicht bekannt ist oder eine
     nicht-kryptographische Hash-Funktion ist oder wenn
     key leer ist.
    
   options Konfigurationsoptionen vom falschen
     Typ übergeben werden, wird nun ein Fehler der Stufe
     E_DEPRECATED ausgegeben, da sie falsch interpretiert
     werden können.
     In Zukunft wird dies ein ValueError sein.
    
   
| Version | Beschreibung | 
|---|---|
| 8.4.0 | Die Übergabe von Optionen eines falschen Typs ist nun veraltet. | 
| 8.1.0 | Der Parameter optionswurde hinzugefügt. | 
| 8.0.0 | Löst nun eine ValueError-Exception aus, wenn algounbekannt ist oder eine nicht
        kryptographische Hash-Funktion ist oder wennkeyleer ist. Zuvor wurdefalsezurückgegeben
        und eine Meldung der StufeE_WARNINGausgegeben. | 
| 7.2.0 | Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32,
        crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) mit HASH_HMACist nicht mehr möglich. | 
| 7.2.0 | Gibt nun einen HashContext anstatt einer Ressource zurück. | 
Beispiel #1 Beispiel für schrittweises Hashing
<?php
$hash = hash('sha256', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');
$ctx = hash_init('sha256');
hash_update($ctx, 'Franz jagt im komplett verwahrlosten ');
hash_update($ctx, 'Taxi quer durch Bayern.');
$incremental_hash = hash_final($ctx);
echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
0b3a381e71cda8f3abe88b1dc3eb9aa2a53fa033e9802878edd1959c267281a2 bool(true)
