Hash-Identifikationstool (Rückwärtssuche) | Automatische Erkennung von MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt, Argon2
Fügen Sie eine wie ein Hash aussehende Zeichenfolge ein, und dieses Tool schätzt anhand von Länge, Zeichensatz und Präfix ab, welcher Algorithmus — MD5, SHA-1, SHA-256, SHA-512, SHA-3, BCrypt oder Argon2 — sie höchstwahrscheinlich erzeugt hat. Die gesamte Verarbeitung erfolgt vollständig im Browser.
Der Hash-Wert selbst enthält keine Information darüber, mit welchem Algorithmus er erzeugt wurde. Da mehrere Algorithmen dieselbe Ausgabelänge haben können, ist dieses Ergebnis lediglich die "wahrscheinlichste Vermutung" auf Basis von Länge, Zeichensatz und Präfix — keine hundertprozentig sichere Aussage.
Tipps zur Hash-Identifikation
- Die Identifikation stützt sich ausschließlich auf Länge, Zeichensatz (Hexadezimal oder Base64) und Präfix als Anhaltspunkte — der Hash wird dabei nicht tatsächlich neu berechnet, um ihn zu verifizieren. Es werden lediglich Kandidaten angezeigt, die sich aus dem Format ableiten lassen.
- BCrypt (
$2a$/$2b$/$2y$) und Argon2 ($argon2id$usw.) betten den Algorithmusnamen und die Parameter direkt im Präfix ein, sodass sie mit hoher Konfidenz erkannt werden können. - Eine 64-stellige Hexadezimalzeichenfolge ist am häufigsten SHA-256, aber SHA3-256 hat dieselbe Länge — wenn Sie die Sprache oder Bibliothek des Ursprungssystems kennen, ziehen Sie diese Information ebenfalls heran.
- Auch über mehrere Zeilen kopierte Hash-Dumps (durch Zeilenumbrüche oder Leerzeichen getrennt) werden vor der Identifikation automatisch von internen Leerzeichen bereinigt, sodass Sie sie unverändert einfügen können.
- Wenn Sie sich beim Ergebnis nicht sicher sind, ist es am zuverlässigsten, die Quelle des Hashes zu prüfen — den Quellcode oder die Dokumentation der Anwendung.
Häufig gestellte Fragen
$2b$ oder $argon2id$. Solange diese Information ausgelesen werden kann, lässt sich der Algorithmus eindeutig bestimmen.
Übrigens – Warum ein Hash-Wert allein den Algorithmus nicht eindeutig bestimmen kann
Die Aufgabe einer Hash-Funktion besteht darin, Eingabedaten in eine Ausgabe fester Länge umzuwandeln, und diese Ausgabe (der Digest) selbst enthält keinerlei Metadaten, die den verwendeten Algorithmus angeben. Das ist eine zwangsläufige Folge des Designs: Würden Metadaten eingebettet, würde sich die Ausgabelänge ändern und damit die für eine kryptografische Hash-Funktion wesentliche Eigenschaft der "festen Länge" zerstört. Damit bleibt uns als Anhaltspunkt nur das "Erscheinungsbild" der Ausgabe — ihre Länge und ihr Zeichensatz.
Diese Einschränkung zeigt sich am deutlichsten im Verhältnis zwischen den Familien SHA-2 und SHA-3. SHA-256 und SHA3-256 besitzen völlig unterschiedliche interne Strukturen (SHA-2 verwendet eine Merkle-Damgård-Konstruktion, SHA-3 eine Schwamm-Konstruktion), sind aber beide so konzipiert, dass sie eine 256-Bit-Ausgabe erzeugen — also 64 Hexadezimalstellen. Dieselbe Beziehung besteht zwischen SHA-224/SHA3-224, SHA-384/SHA3-384 und SHA-512/SHA3-512, sodass die Ausgabelänge allein niemals klären kann, um welchen der beiden es sich handelt. Da SHA-2 in der Praxis weitaus verbreiteter ist, zeigt dieses Tool bei übereinstimmender Länge die SHA-2-Variante als bevorzugten Kandidaten an — dies bleibt letztlich aber nur eine statistische Vermutung.
Passwort-Hash-Algorithmen wie BCrypt und Argon2 lösen diese Mehrdeutigkeit hingegen, indem sie ein selbstbeschreibendes Format namens Modular Crypt Format verwenden. Zeichenfolgen wie $2b$12$... oder $argon2id$v=19$... betten Algorithmusname, Version und Parameter als Text am Anfang des Hashes ein, sodass sich allein aus dem Hash-Wert eindeutig rekonstruieren lässt, wie er berechnet wurde. Trifft man auf einen Hash in diesem Format, ist eine eindeutige Identifikation möglich.
Diese Art der Identifikationsarbeit wird in der Praxis tatsächlich benötigt — etwa bei der Untersuchung von Passwort-Dumps aus Legacy-Systemen oder bei kryptografischen Rätseln in CTF-Sicherheitswettbewerben (Capture The Flag). Kann der Algorithmus anhand eines Hash-Werts eingegrenzt werden, lässt sich effizient entscheiden, welches Analysewerkzeug oder welche Cracking-Methode als Nächstes versucht werden sollte — etwa welcher Angriffsmodus in Hashcat auszuwählen ist.