
Hash- und HMAC-Generator: MD5, SHA-256, SHA-512 online
MD5- oder SHA-Digest berechnen oder eine Nachricht per HMAC signieren — im Browser. Hex, Base64 oder Base64URL, lokale Text-Prüfsummen und Webhooks.
Ein Digest belegt die Bytes; HMAC belegt, wer sie gesendet hat
Hash und HMAC beantworten verschiedene Fragen. Der SHA-256 einer Zeichenkette sagt, ob sie noch zu einem veröffentlichten Fingerabdruck passt. Der HMAC-SHA-256 derselben Zeichenkette, berechnet mit einem gemeinsamen Geheimnis, sagt, ob jemand mit diesem Geheimnis sie erzeugt hat. Beides ist weder eine Verschlüsselung noch ein Passwortspeicher. FastMinify trennt die beiden Aufgaben. Der Hash-Generator online berechnet MD5, SHA-1, SHA-256, SHA-384 und SHA-512 aus UTF-8-Text, der HMAC-Generator signiert eine Nachricht mit HMAC-SHA-256, SHA-384 oder SHA-512. Beide laufen im Browser-Tab über Web Crypto (MD5 ist eine lokale Implementierung, weil Web Crypto es nicht anbietet), und nichts wird hochgeladen. Beide stehen im Kodierungs-Tools-Hub, neben den Base64- und JWT-Werkzeugen. Kodierung schreibt Bytes anders auf, Hashing bildet ihren Fingerabdruck.
Wann der Browser der richtige Ort zum Hashen ist
Eine Zeichenkette, die Sie einfügen können, ein Geheimnis, das Sie in den eigenen Browser tippen, ein Digest, den Sie schon haben.
Wenn die Bytes ein Binärartefakt sind oder das Geheimnis nicht in einem Browser auf einem geteilten Rechner auftauchen darf, bleiben Sie in der Shell oder in der CI.
Hash-Fehler, die wie ein Treffer aussehen
Ein schlichter Digest ist schnell, ungesalzen und für dieselbe Eingabe identisch. Das passt zu einer Prüfsumme, aber nicht zu einem Passwort: Ein Angreifer kann den Digest vorab berechnen, und zwei Nutzer mit demselben Passwort teilen sich denselben Wert. Die Dokumentation der Hash- und HMAC-Seiten weist darauf hin. Passwörter gehören zu bcrypt-hash (oder zu Argon2 auf Ihrem Server). HMAC ist ebenfalls das falsche Werkzeug, denn es authentifiziert eine Nachricht mit einem Geheimnis, das Sie behalten müssen, und streckt kein Passwort.
Jeder kann den SHA-256 eines öffentlichen Bodys neu berechnen. Der Digest belegt, dass der Body unverändert ist, aber nicht, wer ihn erzeugt hat. Muss ein Webhook, ein Versionshinweis oder ein API-Aufruf authentisch sein, braucht es ein Geheimnis: HMAC oder eine JWT-Signatur, geprüft mit jwt-verify. Die umgekehrte Verwechslung ist nach dem Base64-Kodieren-und-Dekodieren-Guide genauso häufig, denn Base64 ist eine umkehrbare Verpackung. Der SHA-256 von abc ist ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad. Aus diesem Hex wird nicht wieder abc.
Der Hash-Generator berechnet Hashes von UTF-8-Text, nicht von einer Rohdatei. Die Dateiauswahl akzeptiert nur Textendungen (txt, md, json, csv, html, xml, yml, yaml) bis zur Browsergrenze von 32 MiB, und die Datei wird vor dem Hashen als Text gelesen. Der SHA-256 eines Anbieters für ein .tar.gz, ein Bild oder ein PDF passt daher nicht, und diese Typen stehen nicht in der Auswahl. Selbst eine Textdatei kann von sha256sum abweichen, wenn sich die Zeilenenden ändern. Der SHA-256 von abc ist der Vektor oben. Der SHA-256 von abc plus einem LF ist edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. Dieselben Buchstaben, andere Bytes.
echo abc | sha256sum nutzen (echo hängt einen Zeilenumbruch an) und dem Browser die Schuld gebensha256sum oder openssl dgst.GitHubs X-Hub-Signature-256 ist sha256= gefolgt vom HMAC-SHA-256 des rohen Bodys, mit dem Geheimnis als UTF-8. Stripe signiert timestamp.payload, nicht das JSON allein. Die HMAC-Seite baut diese Zeichenketten nicht und entfernt kein sha256=-Präfix. Fügen Sie die exakte Nachricht, die exakten Schlüsselbytes und nur den Digest ein. Der Vergleich ignoriert Hex-Großschreibung und Leerzeichen sowie nachgestelltes = bei Base64URL. Ein Präfix ignoriert er nicht.
sha256=f7bc… in Erwarteter Digest einfügenWelcher Algorithmus, welche Schreibweise, welches Werkzeug
Alle erzeugen undurchsichtige Zeichenketten. Sie ersetzen einander nicht.
Die Digest-Bytes bleiben gleich. Die Schreibweise nicht. Hex ist, was sha256sum und die meisten Webhook-Dokus drucken. Base64 mit Padding ist, was manche APIs liefern. Base64URL ohne Padding ist die kompakte Form (kein +, kein /, kein nachgestelltes =). Großschreibung gilt nur für Hex.
Ein abgeschnittener Digest ist eine misslungene Kopie, kein anderer Algorithmus. Zählen Sie die Zeichen, nachdem Sie die Leerzeichen entfernt haben.
Einen Digest berechnen, dann eine Nachricht signieren
Öffnen Sie den Hash-Generator. Fügen Sie den Text ein oder wählen Sie eine Textdatei aus. Wählen Sie Hex, Base64 oder Base64URL. Schalten Sie die Option Hex Großbuchstaben nur ein, wenn der Referenz-Digest in Großbuchstaben steht, denn bei Base64 ändert sie nichts. Alle fünf Algorithmen aktualisieren sich gemeinsam. Fügen Sie den erwarteten Digest ein, um Treffer zu markieren, oder laden Sie das Beispiel, wenn Sie nur den Ablauf sehen wollen. Das Feld muss mindestens ein Zeichen enthalten, das kein Leerzeichen ist: Ein leeres Feld löscht die Karten, statt den bekannten SHA-256 der leeren Zeichenkette anzuzeigen.
1. Die exakten Bytes als Text einfügen
Einigen Sie sich auf Zeilenenden. Ein abschließendes LF gehört zur Eingabe. Formatieren Sie JSON nicht um, wenn die andere Seite die kompakte Form gehasht hat.
2. Die Ausgabeschreibweise angleichen
Hex für Prüfsummen und CLI-Tools. Base64 mit Padding, wenn die API + / und = zeigt. Base64URL ohne Padding, wenn der Digest in einem Token oder einer URL steht.
3. Den erwarteten Digest einfügen
Der Vergleich ignoriert Hex-Großschreibung und Leerzeichen sowie Base64URL-Padding. Ein Treffer markiert den Algorithmus. Keine Markierung: andere Bytes, andere Schreibweise oder ein Präfix, das Sie noch entfernen müssen.
Öffnen Sie den HMAC-Generator. Es gibt keine Dateiauswahl, fügen Sie also Nachricht und Geheimnis ein. Lassen Sie SHA-256 eingestellt, außer der Anbieter nennt SHA-384 oder SHA-512. Stellen Sie die Schlüsselkodierung auf UTF-8 für ein Geheimnis wie eine Passphrase, auf Hex für einen Hex-Schlüssel (optionales 0x, gerade Länge) oder auf Base64 beziehungsweise Base64URL, wenn der Schlüssel so gespeichert wurde. UTF-8 auf einem Hex-Geheimnis signiert die Zeichen 0-9a-f und nicht die Schlüsselbytes, der Digest passt dann nicht, und die Ursache ist nicht offensichtlich. Der erwartete Digest folgt denselben Vergleichsregeln wie die Hash-Seite.
Dieselben Bytes in Node und openssl
createHash und createHmac hashen die Zeichenkette, die Sie übergeben. Sie hängen keinen Zeilenumbruch an. Das entspricht den Browser-Tools.
Einfaches Beispiel
echo hängt einen Zeilenumbruch an, der Digest gilt also für andere Bytes. printf nicht. Für eine Datei auf dem Datenträger setzen Sie -binary nur, wenn Sie die rohen Digest-Bytes wollen; Hex ist die Textform.
Einfaches Beispiel
Keine Installation, nichts wird an einen Server gesendet, fünf Hash-Algorithmen oder drei HMAC-Algorithmen, Hex / Base64 / Base64URL und eine Markierung des erwarteten Digests. Die Grenzen: nur Text und UTF-8, ein Deckel von 32 MiB für Textdateien auf der Hash-Seite, keine binäre Prüfsumme, kein MD5-HMAC, kein Passwort-Stretching, kein JWT-Zusammenbau. Nutzen Sie die Seiten, um ein Snippet zu prüfen oder einen Webhook-Digest nachzubauen. openssl bleibt am Release-Artefakt, bcrypt am Passwort.
Zusammenfassung
Hashen Sie den Text, wenn Sie wissen müssen, dass er sich nicht geändert hat. Nehmen Sie HMAC, wenn ein gemeinsames Geheimnis belegen muss, wer ihn erzeugt hat. FastMinify macht beides im Browser. Es verarbeitet MD5 bis SHA-512 für UTF-8-Text (und Textdateien bis 32 MiB) sowie HMAC-SHA-256, SHA-384 oder SHA-512 mit einem UTF-8-, Hex- oder Base64-Schlüssel, geschrieben als Hex, Base64 oder Base64URL ohne Padding. Es prüft kein Archiv, speichert kein Passwort und verifiziert kein JWT. Das bleibt bei openssl, bcrypt und jwt-verify. Starten Sie im Kodierungs-Tools-Hub, solange die Zeichenkette noch Text ist.
Im Browser hashen oder signieren
Verwandte Artikel

Fügen Sie Token und JWKS ein und prüfen Sie eine RS256-, ES256- oder HS256-Signatur im Browser. Schlüsselwahl per kid, Fehler und zu prüfende Claims.

HTTP/2 und HTTP/3 ändern den Weg der Dateien, nicht ihre Größe. Messungen zu Größe, Kompilierzeit und Bundling zeigen, was Minifizierung noch bringt.

Rechnen Sie eine Unix-Epoche in ein lesbares Datum um und zurück, unterscheiden Sie Sekunden und Millisekunden und meiden Sie Zeitzonen-, JWT- und Zeitumstellungsfallen.