HMAC-Generator: HMAC-SHA256 berechnen
Der HMAC-Generator berechnet HMAC-SHA256, SHA-512, SHA-1 oder MD5 aus Nachricht und Secret Key und prüft Webhook-Signaturen.
Alles läuft in Ihrem Browser, Eingaben werden nicht übertragen. Nur zum Lernen und Testen: Verwenden Sie für echte Geheimnisse und Produktivsysteme geprüfte Werkzeuge Ihrer Organisation.
HMAC berechnen und Webhooks prüfen
HMAC (Hash-based Message Authentication Code, RFC 2104) verbindet eine Nachricht mit einem geheimen Schlüssel. Nur wer den Secret Key kennt, kann denselben Wert berechnen. Der HMAC-Generator rechnet HMAC-SHA256, HMAC-SHA512, HMAC-SHA384, HMAC-SHA1 und HMAC-MD5. Den Schlüssel können Sie als Text, Hex oder Base64 angeben, die Ausgabe erscheint als Hex, Base64 oder Base64URL.
Häufigster Einsatz ist die Webhook-Signatur: Dienste wie GitHub oder Zahlungsanbieter signieren den Body einer Anfrage mit einem gemeinsamen Secret und senden das Ergebnis in einem Header, bei GitHub zum Beispiel als X-Hub-Signature-256 mit dem Präfix sha256=. Um HMAC zu berechnen und eine solche Signatur zu prüfen, fügen Sie den unveränderten Body als Nachricht ein, tragen das Secret ein und setzen den Header-Wert in das Vergleichsfeld. Der Knopf „Testvektor RFC 4231“ lädt das offizielle Beispiel mit dem Schlüssel „Jefe“, damit Sie das Ergebnis nachprüfen können.
Grenzen: Schon ein zusätzliches Leerzeichen oder ein anderer Zeilenumbruch im Body ergibt eine völlig andere Signatur. Prüfen Sie deshalb immer die Rohdaten, nicht neu formatiertes JSON. In Ihrem Server-Code sollte der Vergleich in konstanter Zeit erfolgen (etwa mit hmac.compare_digest in Python oder crypto.timingSafeEqual in Node.js), um Timing-Angriffe zu vermeiden.
Anleitung: HMAC-Generator in 5 Schritten
- Die Nachricht einfügen, bei Webhooks den unveränderten Body der Anfrage.
- Den Secret Key eintragen und das Schlüssel-Format wählen: Text (UTF-8), Hex oder Base64.
- Hash-Verfahren (etwa SHA-256) und Ausgabe als Hex, Base64 oder Base64URL wählen.
- Optional den Header-Wert in „Erwartete Signatur vergleichen“ einfügen und das Ergebnis prüfen.
- Zur Kontrolle mit „Testvektor RFC 4231“ das offizielle Beispiel laden.
Typische Anwendungsfälle
- Webhook-Signatur prüfen: Nachrechnen, ob eine Anfrage von GitHub oder einem Zahlungsanbieter wirklich mit Ihrem Secret signiert wurde.
- Fehlersuche: Herausfinden, ob ein Signaturfehler am Body, am Schlüsselformat oder am Ausgabeformat liegt.
- Eigene Implementierung testen: Das Ergebnis Ihres Codes mit HMAC SHA256 aus dem Generator vergleichen.
Häufige Fragen
Was ist der Unterschied zwischen Hash und HMAC?
Einen Hash kann jeder berechnen. Ein HMAC braucht zusätzlich einen geheimen Schlüssel und beweist damit, dass die Nachricht von jemandem stammt, der den Schlüssel kennt, und unterwegs nicht verändert wurde.
Warum stimmt meine Webhook-Signatur nicht?
Meist wurde der Body vor dem Prüfen verändert, etwa durch JSON-Parsing und neues Serialisieren, oder das Secret wurde im falschen Format eingegeben. Manche Anbieter signieren zusätzlich einen Zeitstempel vor dem Body.
Ist HMAC-MD5 noch sicher?
Die Schwächen von MD5 betreffen HMAC weniger stark als einfache Hashes. Für neue Anwendungen sollten Sie trotzdem HMAC-SHA256 oder stärker verwenden.
Wie lang sollte der Secret Key sein?
Mindestens so lang wie die Ausgabe des Hash-Verfahrens, für HMAC-SHA256 also 32 zufällige Byte. Einen passenden Schlüssel erzeugt der Token-Generator.
Wie prüfe ich die GitHub-Signatur X-Hub-Signature-256?
Berechnen Sie HMAC-SHA256 über den unveränderten Body mit dem Webhook-Secret und lassen Sie das Ergebnis als Hex ausgeben. Es muss dem Header-Wert nach dem Präfix sha256= entsprechen.
Wie berechne ich HMAC-SHA256 mit OpenSSL?
In der Kommandozeile mit printf '%s' 'Nachricht' | openssl dgst -sha256 -hmac 'Schlüssel'. printf verhindert, dass ein Zeilenumbruch mitgerechnet wird.
Das könnte auch helfen
Hash-Generator
MD5, SHA-1, SHA-256, SHA-384 und SHA-512 für Text oder Datei berechnen und vergleichen.
ÖffnenPasswort-Generator
Sichere Zufallspasswörter mit wählbarer Länge und Zeichengruppen, inklusive Entropie in Bit.
ÖffnenPasswort-Stärke prüfen
Passwort testen: Entropie, typische Muster, häufige Passwörter und grobe Knackzeit.
ÖffnenPassphrase-Generator
Merkbare Passphrasen aus einer deutschen Wortliste mit über 2.000 Wörtern, nach Diceware-Art.
ÖffnenToken-Generator
Zufalls-Token als Hex, Base64URL oder alphanumerisch erzeugen, etwa für API-Keys und Secrets.
ÖffnenJWT dekodieren
JSON Web Token lesen: Header, Payload, Ablaufzeit als Datum und Warnungen, etwa bei alg none.
Öffnen