Start · Sprachen · PHP · Referenz · mhash_get_hash_name

mhash_get_hash_name

Funktion

Gibt den Namen eines Hash-Algorithmus anhand seiner <code>MHASH_*</code>-Konstante zurück.

seit PHP 4.0.0 Kategorie: crypto

Signatur

mhash_get_hash_name(int $hash): string|false

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

Typ
string|false
Beschreibung
Gibt den Namen des Hash-Algorithmus als Großbuchstaben-String zurück (z. B. "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;
}
?>
Hash-Name: SHA256

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);
    }
}
?>
Verfügbare MHASH-Algorithmen: [ 0] CRC32 [ 1] MD5 [ 2] SHA1 ...

// 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.