Berechnen Sie MD5, SHA-1, SHA-224, SHA-256, SHA-384 oder SHA-512 aus Text. Wählen Sie eine HMAC-Variante für die Berechnung mit Schlüssel und kopieren Sie das hexadezimale Ergebnis.
Läuft lokal in deinem BrowserSechs 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.
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.
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.
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.
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.