Text hier hashen

Sechs Prüfsummen und dieselben sechs noch einmal mit Schlüssel: MD5, SHA-1, SHA-224, SHA-256, SHA-384 und SHA-512, jeweils auch als HMAC. Jeder Wert wurde gegen eine unabhängige Implementierung geprüft — 36 Prüfsummen pro Sprache, 12 Algorithmen über drei Eingaben, deckungsgleich bis zur letzten Hexstelle.

Das Ergebnis ist kleingeschriebenes Hexadezimal und sonst nichts: 32 Zeichen bei MD5, 40 bei SHA-1, 56 bei SHA-224, 64 bei SHA-256, 96 bei SHA-384 und 128 bei SHA-512. Gehasht wird in der Seite, der Text verlässt den Browser also nicht, und nach dem Laden arbeitet das Werkzeug auch ohne Netz.

  1. Text in das Feld einfügen oder tippen. Er wird genau so als UTF-8 gehasht, wie er dasteht: Leerzeichen und Zeilenumbrüche zählen, ein Umbruch am Ende ergibt eine andere Prüfsumme.
  2. Eine der sechs grünen Schaltflächen drücken. Das Ergebnis erscheint darunter als reine Hex-Zeichenkette, ohne Algorithmusnamen und ohne Trennzeichen.
  3. Stattdessen eine blaue HMAC-Schaltfläche drücken — über den Schaltflächen erscheint ein Schlüsselfeld. Schlüssel eintippen und dieselbe Schaltfläche erneut drücken: Neu berechnet wird nur beim Klick.
  4. „Kopieren“ legt die Hex-Zeichenkette in die Zwischenablage, „Leeren“ räumt Feld und Ergebnis zusammen auf.

Algorithmen, Ausgabe und das Schlüsselfeld

Was die Algorithmen liefern

MD5 und SHA-1 sind für Prüfsummen und für Systeme da, die sie noch verlangen; für alles Neue nimmt man SHA-256 oder SHA-512. SHA-224 und SHA-384 sind die verkürzten Varianten dieser beiden und stehen hier, weil manche Bibliotheken und Zertifikatswerkzeuge sie ausdrücklich nennen.

Alle zwölf sind Einwegfunktionen — eine Umkehrfunktion gibt es auf der Seite nicht —, und die Prüfsumme eines einzelnen Zeichens ist so lang wie die eines Megabytes. Der Text "abc" ergibt unter MD5 900150983cd24fb0d6963f7d28e17f72 und unter SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, genau wie in einer unabhängigen Implementierung.

Schlüsselfeld und HMAC

HMAC mischt einen geheimen Schlüssel in die Berechnung, derselbe Text ergibt also für jeden Schlüssel eine andere Prüfsumme. Das Feld ist verborgen, bis eine HMAC-Schaltfläche gedrückt wird, und wieder verborgen, sobald eine grüne Schaltfläche gedrückt wird: Eine einfache Prüfsumme nutzt den Schlüssel nie, egal was im Feld steht.

Schlüssel, die länger sind als die Blockgröße der Hashfunktion, werden zuerst gehasht — so verlangt es RFC 2104 —, und ein leerer Schlüssel ist erlaubt: Die Seite liefert dann die Prüfsumme des Textes unter leerem Schlüssel, statt die Eingabe abzulehnen. SHA-224 und SHA-384 kürzen ihre Ausgabe, und genau dort gehen JavaScript-HMAC-Helfer gern daneben; beide wurden hier gegen eine unabhängige Implementierung geprüft und stimmen überein.

Was die Ausgabe ist — und was nicht

Im Ergebnisbereich steht die reine Hex-Zeichenkette: kein Präfix, kein Trennzeichen, keine Algorithmusangabe, kein zusätzlicher Zeilenumbruch. Damit lässt sie sich direkt in eine Prüfsummendatei oder eine Kommandozeile übernehmen, und ebenso bedeutet es, dass Prüfsumme und Dateiname von Hand zusammengebracht werden müssen.

Das hier ist ein Hash-Rechner und kein Verfahren zur Passwortspeicherung. Die gewählte Funktion läuft genau einmal, ohne Salt und ohne Iterationszahl, und nichts auf der Seite speichert oder vergleicht Werte. Für Passwörter nimmt man bcrypt, scrypt oder Argon2 statt einer blanken SHA-256-Prüfsumme.

Wo es läuft, und eine Grenze

Die Bibliotheken kommen von der Seite, gehasht wird in der Seite: Nach dem Laden erzeugte das Hashen keine einzige Anfrage, und der Text wird nie hochgeladen. Eine Eingabe von 4,8 MB wurde mit SHA-256 in rund 0,6 Sekunden gehasht, 1 MB in etwa 0,2 Sekunden.

Die Eingabe ist ein Textfeld, das Werkzeug hasht also Text als UTF-8, und Binärdateien fallen nicht darunter — ihre Bytes müssten erst kodiert werden. Für Dateien und Archive vergleicht man die Prüfsumme, die das Betriebssystem mit sha256sum oder certutil erzeugt, denn diese lesen Bytes direkt.

Zuletzt verwendet: