(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL hash >= 1.1)
hash_init — Initialisiert einen schrittweisen Hashing-Kontext
algo
Der Name des gewählten Hash-Algorithmus (z. B. "md5", "sha256", "haval160,4" usw...). Eine Liste der unterstützten Algorithmen ist hash_algos() zu entnehmen.
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.
Löst eine ValueError-Exception aus, wenn
algo
nicht bekannt ist oder
eine nicht-kryptographische Hash-Funktion ist oder wenn
key
leer ist.
Version | Beschreibung |
---|---|
8.1.0 |
Der Parameter options wurde hinzugefügt.
|
8.0.0 |
Löst nun eine ValueError-Exception aus, wenn
algo unbekannt ist oder eine nicht
kryptographische Hash-Funktion ist oder wenn
key leer ist. Zuvor wurde false zurückgegeben
und eine Meldung der Stufe E_WARNING ausgegeben.
|
7.2.0 |
Die Verwendung nicht-kryptografischer Hashfunktionen (adler32, crc32,
crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) mit
HASH_HMAC ist 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)