PHP 8.4.0 RC4 available for testing

hash_init

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

hash_initInitialisiert einen schrittweisen Hashing-Kontext

Beschreibung

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

Parameter-Liste

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.

Rückgabewerte

Gibt einen Hashing-Kontext zur Nutzung mit hash_update(), hash_update_stream(), hash_update_file(), und hash_final() zurück.

Fehler/Exceptions

Löst eine ValueError-Exception aus, wenn algo nicht bekannt ist oder eine nicht-kryptographische Hash-Funktion ist oder wenn key leer ist.

Changelog

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.

Beispiele

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)

Siehe auch

  • hash_algos() - Liefert eine Liste der verfügbaren Hashing-Algorithmen
  • hash_update() - Fügt Daten an einen aktiven Hash-Kontext an
  • hash_update_file() - Fügt Daten aus einer Datei an einen aktiven Hash-Kontext an
  • hash_update_stream() - Fügt Daten aus einem Stream an einen aktiven Hash-Kontext an
  • hash_final() - Schließt einen schrittweisen Hashing-Vorgang ab und liefert sein Ergebnis

add a note

User Contributed Notes

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