Signatur
Beschreibung
mhash_get_hash_name() ermittelt den lesbaren Namen eines Hash-Algorithmus, der durch eine der MHASH_*-Konstanten (z. B. MHASH_SHA256, MHASH_MD5) identifiziert wird. Der zurückgegebene Name ist ein Großbuchstaben-String wie "SHA256" oder "MD5".
Die Funktion ist nützlich, wenn man dynamisch mit verschiedenen Hash-Algorithmen arbeitet und deren Namen z. B. zur Protokollierung, Anzeige oder Weiterverarbeitung benötigt. In Kombination mit mhash_count() lassen sich alle verfügbaren Algorithmen iterativ auflisten.
Die mhash-Erweiterung ist seit PHP 5.3.0 in die hash-Erweiterung integriert. Für neue Projekte empfiehlt sich die Verwendung der moderneren hash_algos()-Funktion, die ebenfalls alle verfügbaren Algorithmen auflistet und keine eigene Konstanten-Infrastruktur benötigt.
Ist der übergebene $hash-Wert ungültig oder nicht bekannt, gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $hash Pflicht | int | Eine der MHASH_*-Konstanten, z. B. MHASH_SHA256 oder MHASH_MD5, die den gewünschten Hash-Algorithmus identifiziert. |
Rückgabewert
"SHA256"), oder false, wenn der übergebene Bezeichner unbekannt oder ungültig ist.Beispiele
Namen eines bekannten Hash-Algorithmus ermitteln
<?php
// Namen des SHA-256-Algorithmus ermitteln
$name = mhash_get_hash_name(MHASH_SHA256);
if ($name !== false) {
echo 'Hash-Name: ' . $name . PHP_EOL;
} else {
echo 'Unbekannter Algorithmus.' . PHP_EOL;
}
?>
Alle verfügbaren MHASH-Algorithmen auflisten
<?php
// mhash_count() liefert den Index des höchsten verfügbaren Algorithmus
$maxHash = mhash_count();
echo 'Verfügbare MHASH-Algorithmen:' . PHP_EOL;
for ($i = 0; $i <= $maxHash; $i++) {
$name = mhash_get_hash_name($i);
if ($name !== false) {
echo sprintf(' [%2d] %s' . PHP_EOL, $i, $name);
}
}
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Die mhash-Erweiterung gilt als veraltet. Seit PHP 5.3.0 wird sie durch die hash-Erweiterung emuliert. Für neue Anwendungen sollten stattdessen hash_algos() und hash() verwendet werden, da diese einen deutlich größeren Algorithmenumfang bieten und aktiv gepflegt werden.
Die Funktion liefert false für Indexwerte, denen kein Algorithmus zugeordnet ist (Lücken im Indexbereich sind möglich). Dies sollte beim Iterieren über alle Indizes berücksichtigt werden.