Hash-Generator

MD5-, SHA-1- und SHA-2-Hashes und HMACs von Texten oder Dateien.

Über dieses Tool

Berechne MD5, SHA-1, SHA-256, SHA-384 und SHA-512 für beliebige Texte oder Dateien oder einen HMAC mit geheimem Schlüssel. Dateien werden lokal gelesen und nie hochgeladen, daher eignet es sich auch zum Prüfen von Download-Prüfsummen.

So verwendest du es

  1. Wähle Text oder Datei als Eingabe.
  2. Tippe Text ein oder zieh eine Datei hinein. Dateien werden lokal gelesen und nie hochgeladen.
  3. Lies MD5, SHA-1, SHA-256, SHA-384 und SHA-512 auf einmal ab, in Hex oder Base64.
  4. Für signierte Nachrichten aktivierst du HMAC und gibst den geheimen Schlüssel ein.

Fragen

Wie prüfe ich eine heruntergeladene Datei?
Wähle Datei, zieh den Download hinein und vergleiche den SHA-256-Wert mit der vom Projekt veröffentlichten Prüfsumme. Weicht auch nur ein Zeichen ab, ist die Datei nicht dieselbe.
Kann ich MD5 oder SHA-1 für Passwörter verwenden?
Nein. Sie sind zu schnell und haben bekannte Schwächen. Speichere Passwörter mit einem langsamen Passwort-Hash wie Argon2, bcrypt oder scrypt.
Was ist ein HMAC?
Ein Hash, kombiniert mit einem geheimen Schlüssel. Er beweist, dass eine Nachricht von jemandem stammt, der den Schlüssel kennt, und nicht verändert wurde. Webhooks von Diensten wie Stripe und GitHub werden so signiert.
Warum unterscheidet sich mein Hash von dem eines anderen Tools?
Meist wegen unsichtbarer Unterschiede in der Eingabe: ein Zeilenumbruch am Ende, Windows-Zeilenenden oder eine andere Textkodierung. Hier wird Text immer als UTF-8 genau so gehasht, wie er eingegeben wurde.
Lässt sich ein Hash entschlüsseln oder umkehren?
Nein. Ein Hash ist keine Verschlüsselung, und es gibt keinen Schlüssel, der ihn rückgängig macht. Websites, die anbieten, „MD5 zu entschlüsseln“, schlagen den Wert in riesigen Tabellen mit Hashes gängiger Strings nach. Deshalb machen ungesalzene Hashes kurzer Eingaben wie Passwörter oder Telefonnummern Daten auch nicht anonym.
Wie prüfe ich die HMAC-Signatur eines Webhooks?
Aktiviere HMAC, gib das Signing-Secret ein und füge den rohen Request-Body genau so ein, wie er angekommen ist; vergleiche dann den HMAC-SHA256-Hexwert mit dem Signatur-Header. GitHub schickt ihn in X-Hub-Signature-256 nach einem Präfix sha256=. Umformatiertes JSON ergibt ein anderes Ergebnis, und manche Anbieter signieren zusätzlich einen Zeitstempel, schau also in ihre Doku.
Wie erkenne ich, welcher Algorithmus einen Hash erzeugt hat?
Sieh dir seine Länge in Hex an. MD5 hat 32 Zeichen, SHA-1 40, SHA-256 64, SHA-384 96 und SHA-512 128. Die Länge beweist den Algorithmus nicht, weil andere Hashes dieselben Größen haben, grenzt ihn aber schnell ein. Hashe hier eine bekannte Eingabe, um sicherzugehen.

Was ist eine Hashfunktion?

Eine kryptografische Hashfunktion macht aus einer Eingabe beliebiger Größe einen Digest fester Größe. SHA-256 erzeugt immer 256 Bit, dargestellt als 64 Hex-Zeichen, egal ob du ein Wort oder eine 4-GB-Datei hashst. Dieselbe Eingabe ergibt immer denselben Hash, und ändert sich ein einziges Bit, ändert sich etwa die Hälfte der Ausgabe. Einen Hash kannst du nicht umkehren, um die Eingabe zurückzubekommen; du kannst nur Vermutungen hashen und die Ergebnisse vergleichen.

Ein guter Hash ist außerdem kollisionsresistent: Zwei Eingaben mit demselben Digest zu finden sollte praktisch unmöglich sein. MD5 und SHA-1 haben diese Eigenschaft verloren. 2017 wurde eine echte SHA-1-Kollision veröffentlicht (SHAttered), und MD5-Kollisionen erzeugt ein Laptop in Sekunden. Beide taugen weiterhin, um versehentliche Beschädigungen zu erkennen, aber für Signaturen, Manipulationsprüfungen und alles andere, wo ein Angreifer im Spiel sein könnte, nimm SHA-256 oder SHA-512.

Denselben SHA-256-Hash auf der Kommandozeile erzeugen

Um mit einem Wert aus dem Terminal zu vergleichen, musst du exakt dieselben Bytes hashen. Unter Linux führst du sha256sum file.iso aus, unter macOS shasum -a 256 file.iso und in Windows PowerShell Get-FileHash file.iso, das standardmäßig SHA-256 nutzt. Für MD5 lauten die Befehle md5sum, md5 und Get-FileHash -Algorithm MD5. PowerShell gibt Hex in Großbuchstaben aus, aktiviere hier also „Großbuchstaben“, wenn beide Werte gleich aussehen sollen.

Denk bei Text daran, dass echo einen Zeilenumbruch anhängt: echo hello | sha256sum hasht sechs Bytes, nicht fünf. Nimm printf hello | sha256sum oder echo -n, damit es dem entspricht, was du hier eingegeben hast; die Byteanzahl über dem Textfeld bestätigt die exakte Eingabe. Manche Systeme, etwa Subresource-Integrity-Attribute, erwarten den Digest in Base64 statt in Hex. Stell die Ausgabe-Kodierung um, dann bekommst du ihn, ohne von Hand umzurechnen.

MD5 vs. SHA-1 vs. SHA-256 vs. SHA-512: Welchen Hash nehmen?

Für neue Projekte ist SHA-256 der Standard: schnell, überall unterstützt und ohne bekannte praktische Angriffe. SHA-512 liefert einen längeren Digest und ist auf 64-Bit-CPUs oft schneller als SHA-256, was bei großen Dateien hilft. SHA-384 ist ein gekürztes SHA-512 mit anderen Startwerten und in TLS und Subresource Integrity verbreitet. Heb dir MD5 und SHA-1 für Altsysteme und Prüfsummen ohne Sicherheitsbezug auf, etwa um eine Datei mit einem alten veröffentlichten MD5 abzugleichen.

Um eine Nachricht zu authentifizieren, etwa eine Webhook-Payload, nimm einen HMAC, statt das Secret zusammen mit der Nachricht zu hashen. Ein einfacher SHA-256 aus Secret plus Nachricht ist anfällig für Length-Extension-Angriffe, gegen die HMAC entwickelt wurde. Passwörter brauchen statt all dieser Verfahren einen langsamen, gesalzenen Algorithmus wie Argon2id oder bcrypt. Für zufällige IDs oder geheime Tokens nimm den UUID-Generator oder den Passwort-Generator statt eines Hashes.

Funktioniert etwas nicht, oder sieht ein Ergebnis falsch aus? Ein Problem mit diesem Tool melden