Hash Identifier

Hash-Typ nach Länge und Format identifizieren — MD5, SHA-1, SHA-256 und mehr

Hash-String

Läuft lokal · Sicher zum Einfügen von Secrets

Was ist Hash-Identifikation?

Hash-Identifikation bezeichnet den Prozess, bei dem ermittelt wird, welcher kryptografische Hash-Algorithmus einen bestimmten Digest erzeugt hat. Kryptografische Hash-Funktionen wie MD5, SHA-1 und SHA-256 produzieren jeweils Ausgaben fester Länge, und genau diese Ausgabelänge ist das primäre Erkennungsmerkmal eines unbekannten Hashes. Wenn du in einem Datenbankdump, einer Konfigurationsdatei oder einer API-Antwort auf eine hexadezimale Zeichenkette stößt, verrät dir ein Hash-Identifier-Tool, welcher Algorithmus sie wahrscheinlich erzeugt hat.

Jeder Hash-Algorithmus bildet beliebige Eingabedaten auf eine Ausgabe fester Größe ab, den sogenannten Digest. MD5 erzeugt stets 128 Bit (32 Hex-Zeichen), SHA-1 stets 160 Bit (40 Hex-Zeichen) und SHA-256 stets 256 Bit (64 Hex-Zeichen). Diese deterministische Ausgabelänge ermöglicht die algorithmische Identifikation, ohne dass Zugriff auf die ursprüngliche Eingabe oder den Hashing-Code erforderlich ist.

Die Identifikation allein anhand der Länge ist nicht immer eindeutig. Mehrere Algorithmen teilen dieselbe Ausgabegröße — SHA-256 und SHA3-256 erzeugen beide 64-stellige Hex-Digests. In solchen Fällen liefert ein Hash-Identifier eine nach Häufigkeit geordnete Liste von Kandidaten-Algorithmen. Kontexthinweise wie das Quellsystem, das Kodierungsformat (Hex vs. Base64) und vorhandene Algorithmus-Präfixe (z. B. '$2b$' bei bcrypt) grenzen die Möglichkeiten weiter ein.

Warum einen Hash Identifier verwenden?

Unbekannte Hashes begegnen einem regelmäßig bei Sicherheitsaudits, Datenbankmigrationen und forensischen Analysen. Ein Hash Identifier beseitigt das Rätselraten und liefert innerhalb von Sekunden den korrekten Algorithmus.

Sofortige Erkennung
Hash einfügen und sofort Kandidaten-Algorithmen erhalten. Kein manuelles Zählen von Zeichen oder Nachschlagen in Referenztabellen — das Tool ordnet die Hex-Länge automatisch allen passenden Algorithmen zu.
🔒
Datenschutzorientierte Analyse
Die gesamte Identifikation läuft vollständig im Browser per JavaScript. Der Hash-Wert verlässt dein Gerät nie — das ist besonders wichtig, wenn du Passwort-Hashes, Authentifizierungs-Token oder sensible forensische Beweise analysierst.
📋
Vollständige Algorithmus-Abdeckung
Erkennt MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 sowie deren SHA-3-Entsprechungen. Die Referenztabelle umfasst die gesamten SHA-2- und SHA-3-Familien sowie gängige Alternativen wie RIPEMD-160 und BLAKE2.
🚫
Kein Konto und keine Installation
Funktioniert sofort in jedem modernen Browser. Kein Registrieren, kein API-Key, kein CLI-Tool zum Installieren. Setze ein Lesezeichen und nutze es, wann immer du auf einen unbekannten Hash stößt — auf jedem Betriebssystem, auf jedem Gerät.

Anwendungsfälle für den Hash Identifier

Sicherheitsaudits
Bei Penetrationstests gibt die Identifikation von Passwort-Hash-Algorithmen in geleakten Datenbanken die Richtung für den Cracking-Ansatz vor. MD5- und SHA-1-Hashes weisen auf schwachen Schutz hin und können bevorzugt zur Behebung eingeplant werden.
Datenbankmigration
Beim Migrieren von Benutzerdatensätzen zwischen Systemen muss der gespeicherte Passwort-Hash-Algorithmus bekannt sein, um die neue Authentifizierungsschicht korrekt zu konfigurieren. Eine falsche Identifikation des Algorithmus führt dazu, dass alle Anmeldungen fehlschlagen.
DevOps und CI/CD
Build-Pipelines enthalten häufig Prüfsummen zur Artefaktverifizierung. Die Erkennung, ob eine Prüfsumme SHA-256 oder SHA-512 ist, stellt sicher, dass du in deinen Deployment-Skripten den richtigen Verifizierungsbefehl verwendest.
Digitale Forensik
Forensische Ermittler begegnen Hash-Digests in Datei-Integritätsprotokollen, Blockchain-Einträgen und Beweismetadaten. Die Identifikation des Algorithmus ist eine Voraussetzung für die Verifizierung der Beweis-Nachvollziehbarkeit.
API-Integration
APIs von Drittanbietern geben manchmal Hash-Werte zurück, ohne den verwendeten Algorithmus zu dokumentieren. Die Identifikation des Hash-Typs aus der Antwort ermöglicht es, die Webhook-Signaturprüfung oder Prüfsummenvalidierung korrekt zu konfigurieren.
Kryptografie erlernen
Studierende in Kryptografie-Kursen können Hashes, die von verschiedenen Algorithmen erzeugt wurden, einfügen und sofort den Zusammenhang zwischen Algorithmenwahl, Ausgabelänge und Sicherheitseigenschaften erkennen.

Referenztabelle: Hash-Algorithmus-Längen

Die folgende Tabelle ordnet jeden gängigen Hash-Algorithmus seiner Ausgabegröße in Bits, Hex-Zeichen und rohen Bytes zu. Dies ist die primäre Nachschlagetabelle, die von Hash-Identifikations-Tools verwendet wird. Wenn mehrere Algorithmen dieselbe Hex-Länge teilen, wird zusätzlicher Kontext benötigt, um sie zu unterscheiden.

AlgorithmusBitsHex-ZeichenBytesHinweise
MD51283216Broken — collisions trivial since 2004
SHA-11604020Deprecated — SHAttered attack (2017)
SHA-2242245628Truncated SHA-256; rarely used standalone
SHA-2562566432Current standard; TLS, Git, Bitcoin
SHA-3843849648Truncated SHA-512; CNSA Suite approved
SHA-51251212864Maximum SHA-2 output; large-data hashing
SHA3-2562566432Keccak-based; NIST alternative to SHA-2
SHA3-51251212864Keccak-based; highest SHA-3 strength
RIPEMD-1601604020Used in Bitcoin address derivation
BLAKE2s2566432Faster than SHA-256; 256-bit output

Mehrdeutige Hash-Längen auflösen

Manche Hex-Längen passen zu mehreren Algorithmen. Die zwei häufigsten Mehrdeutigkeiten sind 64-stellige Hashes (SHA-256 vs. SHA3-256) und 40-stellige Hashes (SHA-1 vs. RIPEMD-160). So lassen sie sich unterscheiden, wenn die Länge allein nicht ausreicht.

64 Hex-Zeichen: SHA-256 vs. SHA3-256
Beide erzeugen 256-Bit-Digests (64 Zeichen). SHA-256 ist in der Praxis bei weitem verbreiteter — Git-Commits, TLS-Zertifikate, Bitcoin-Blöcke und die meisten API-Signaturen verwenden SHA-256. SHA3-256 findet sich typischerweise nur in Systemen, die explizit NIST SP 800-185-Konformität oder Keccak-basierte Konstruktionen erfordern. Die Dokumentation des Quellsystems klärt den Sachverhalt.
40 Hex-Zeichen: SHA-1 vs. RIPEMD-160
SHA-1 ist der bei weitem häufigere 160-Bit-Hash — historisch eingesetzt in Git (vor der SHA-256-Umstellung), TLS und Code-Signing. RIPEMD-160 tritt hauptsächlich bei der Bitcoin-Adressgenerierung auf (HASH160 = SHA-256, gefolgt von RIPEMD-160). Stammt der Hash aus einem Kryptowährungs-Kontext, kommt RIPEMD-160 in Betracht; andernfalls ist SHA-1 der wahrscheinlichere Kandidat.

Code-Beispiele

Nachfolgend sind funktionierende Implementierungen der Hash-Identifikation anhand der Hex-Länge in vier Sprachen aufgeführt. Jede Funktion validiert die Hex-Kodierung, schlägt die Zeichenanzahl nach und gibt alle passenden Algorithmen zurück.

JavaScript
function identifyHash(hex) {
  const len = hex.length
  const isHex = /^[0-9a-fA-F]+$/.test(hex)
  if (!isHex) return ['Not a hex-encoded hash']

  const map = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
  }
  return map[len] || [`Unknown (${len} hex chars)`]
}

identifyHash('d41d8cd98f00b204e9800998ecf8427e')
// → ["MD5"]

identifyHash('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
// → ["SHA-256", "SHA3-256", "BLAKE2s"]
Python
import re

HASH_LENGTHS = {
    32:  ['MD5'],
    40:  ['SHA-1', 'RIPEMD-160'],
    56:  ['SHA-224', 'SHA3-224'],
    64:  ['SHA-256', 'SHA3-256', 'BLAKE2s'],
    96:  ['SHA-384', 'SHA3-384'],
    128: ['SHA-512', 'SHA3-512', 'BLAKE2b'],
}

def identify_hash(hex_string: str) -> list[str]:
    hex_string = hex_string.strip()
    if not re.fullmatch(r'[0-9a-fA-F]+', hex_string):
        return ['Not a hex-encoded hash']
    return HASH_LENGTHS.get(len(hex_string), [f'Unknown ({len(hex_string)} hex chars)'])

identify_hash('da39a3ee5e6b4b0d3255bfef95601890afd80709')
# → ['SHA-1', 'RIPEMD-160']

identify_hash('a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a')
# → ['SHA-256', 'SHA3-256', 'BLAKE2s']
Go
package main

import (
	"fmt"
	"regexp"
)

var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")

var hashLengths = map[int][]string{
	32:  {"MD5"},
	40:  {"SHA-1", "RIPEMD-160"},
	56:  {"SHA-224", "SHA3-224"},
	64:  {"SHA-256", "SHA3-256", "BLAKE2s"},
	96:  {"SHA-384", "SHA3-384"},
	128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}

func identifyHash(hex string) []string {
	if !hexPattern.MatchString(hex) {
		return []string{"Not a hex-encoded hash"}
	}
	if algos, ok := hashLengths[len(hex)]; ok {
		return algos
	}
	return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}

func main() {
	fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
	// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"

if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
  echo "Not a hex-encoded hash"
  exit 1
fi

len=${#hash}
case $len in
  32)  echo "MD5 (128-bit)" ;;
  40)  echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
  56)  echo "SHA-224 or SHA3-224 (224-bit)" ;;
  64)  echo "SHA-256 or SHA3-256 (256-bit)" ;;
  96)  echo "SHA-384 or SHA3-384 (384-bit)" ;;
  128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
  *)   echo "Unknown hash length: $len chars" ;;
esac

# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)

Häufig gestellte Fragen

Wie funktioniert Hash-Identifikation?
Die Hash-Identifikation basiert in erster Linie auf der Länge des hex-kodierten Digests. Jeder Hash-Algorithmus erzeugt eine feste Anzahl von Ausgabe-Bits: MD5 gibt 128 Bits aus (32 Hex-Zeichen), SHA-1 gibt 160 Bits aus (40 Hex-Zeichen), SHA-256 gibt 256 Bits aus (64 Hex-Zeichen) usw. Der Identifier misst die Zeichenkettenlänge, prüft, ob sie ausschließlich hexadezimale Zeichen enthält, und ordnet sie bekannten Algorithmus-Ausgabegrößen zu.
Kann ein Hash Identifier den genauen Algorithmus mit Sicherheit bestimmen?
Nicht immer. Mehrere Algorithmen können dieselbe Ausgabelänge erzeugen. SHA-256 und SHA3-256 geben beide 64 Hex-Zeichen aus. SHA-1 und RIPEMD-160 geben beide 40 Hex-Zeichen aus. In diesen Fällen gibt das Tool alle Kandidaten zurück. Du benötigst Kontext — das Quellsystem, Dokumentation oder Algorithmus-Präfixe — um auf einen einzelnen Algorithmus einzugrenzen.
Was, wenn mein Hash Base64-kodiert statt hex ist?
Base64-kodierte Hashes verwenden einen anderen Zeichensatz (A-Z, a-z, 0-9, +, /) und haben andere Längen als ihre Hex-Entsprechungen. Ein 256-Bit-Hash umfasst 44 Base64-Zeichen, aber 64 Hex-Zeichen. Dekodiere die Base64-Zeichenkette zunächst in rohe Bytes und prüfe dann die Byte-Länge: 16 Bytes = MD5, 20 Bytes = SHA-1, 32 Bytes = SHA-256, 48 Bytes = SHA-384, 64 Bytes = SHA-512.
Ist es sicher, Passwort-Hashes in einen Online-Identifier einzufügen?
Dieses Tool läuft vollständig im Browser — es werden keine Daten an einen Server übertragen. Der Hash verlässt dein Gerät nie. Für maximale operative Sicherheit bei einem formellen Audit kannst du dies überprüfen, indem du den Netzwerk-Tab in den Entwicklertools deines Browsers inspizierst oder das Tool offline verwendest, nachdem die Seite geladen wurde.
Warum wird MD5 noch verwendet, obwohl es kryptografisch gebrochen ist?
MD5 ist in Bezug auf Kollisionsresistenz gebrochen — ein Angreifer kann zwei unterschiedliche Eingaben konstruieren, die denselben Hash erzeugen. MD5 wird jedoch weiterhin in sicherheitsunkritischen Kontexten eingesetzt: Datei-Prüfsummen zur Download-Verifizierung, Cache-Keys, Deduplizierung und ETags in HTTP. Für diese Zwecke sind zufällige Kollisionen astronomisch unwahrscheinlich, und gezielte Angriffe sind keine Gefahr. MD5 darf nicht für Passwort-Hashing, digitale Signaturen oder Zertifikatsprüfung verwendet werden.
Wie erkenne ich bcrypt-, scrypt- oder Argon2-Hashes?
Passwort-Hashing-Funktionen wie bcrypt, scrypt und Argon2 verwenden charakteristische Zeichenketten-Präfixe statt roher Hex-Ausgabe. Bcrypt-Hashes beginnen mit '$2a$', '$2b$' oder '$2y$', gefolgt von einem Kostenfaktor. Argon2-Hashes beginnen mit '$argon2id$' oder '$argon2i$'. Scrypt-Hashes beginnen typischerweise mit '$scrypt$'. Da es sich nicht um rohe kryptografische Digests handelt, gilt die längenbasierte Identifikation nicht — das Präfix selbst identifiziert den Algorithmus.
Was ist der Unterschied zwischen SHA-2 und SHA-3?
SHA-2 (einschließlich SHA-256, SHA-384 und SHA-512) basiert auf der Merkle-Damgård-Konstruktion, die von der NSA entworfen und in FIPS 180-4 standardisiert wurde. SHA-3 (SHA3-256, SHA3-384, SHA3-512) basiert auf der Keccak-Schwamm-Konstruktion, die aus einem öffentlichen NIST-Wettbewerb hervorging und in FIPS 202 standardisiert wurde. Beide erzeugen bei gleichen Sicherheitsniveaus identische Ausgabelängen, verwenden jedoch grundlegend unterschiedliche interne Strukturen. SHA-3 wurde als Fallback konzipiert, falls strukturelle Schwächen in SHA-2 entdeckt werden — bisher wurden jedoch keine derartigen Schwächen nachgewiesen.