(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)
hash — Berechnet den Hash einer Nachricht
$algo
, string $data
[, bool $raw_output
= FALSE
] ) : string
algo
Name des gewählten Hash-Algorithmus (z.B. "md5", "sha256", "haval160,4", usw...)
data
Nachricht, die gehasht werden soll.
raw_output
Ist dieser Parameter TRUE
, werden direkt Binärdaten
zurückgegeben, andernfalls werden klein geschriebene
Hexadezimalziffern zurückgegeben.
Gibt den berechneten Hash als Hexadezimalzahl zurück, außer
raw_output
ist wahr, in diesem Fall wird die
binäre Darstellung des Hashes zurückgegeben.
Version | Beschreibung |
---|---|
5.4.0 | Der tiger Algorithmus verwendet nun Big-Endian-Bytereihenfolge. Vergleiche das Beispiel weiter unten. |
Beispiel #1 hash()-Beispiel
<?php
echo hash('ripemd160', 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.');
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1e3d00e6a15336c66e46881d1efe8afc7813f66e
Beispiel #2 Ermitteln von Prä-PHP 5.4 tiger Hashes mit PHP 5.4 und höher
<?php
function old_tiger($data = "", $width=192, $rounds = 3) {
return substr(
implode(
array_map(
function ($h) {
return str_pad(bin2hex(strrev($h)), 16, "0");
},
str_split(hash("tiger192,$rounds", $data, true), 8)
)
),
0, 48-(192-$width)/4
);
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo old_tiger('a-string'), PHP_EOL;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.3:
146a7492719b3564094efe7abbd40a7416fd900179d02773 64359b7192746a14740ad4bb7afe4e097327d0790190fd16
Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 5.4:
64359b7192746a14740ad4bb7afe4e097327d0790190fd16 146a7492719b3564094efe7abbd40a7416fd900179d02773