(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_HMAC
angegeben 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 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)