Über dieses Tool
Ein HMAC (Hash-based Message Authentication Code, RFC 2104) ist eine Signatur aus einer Nachricht und einem geheimen Schlüssel. Wer den Schlüssel kennt, kann prüfen, dass die Nachricht unverändert ist und vom Absender stammt. Webhooks von GitHub, Stripe, Shopify oder Slack, signierte API-Anfragen und JWTs mit HS256 nutzen genau dieses Verfahren.
Der HMAC-Generator berechnet die Signatur mit SHA-1, SHA-256, SHA-384 und SHA-512 gleichzeitig, als Hex, Base64 oder Base64URL. Den Schlüssel kannst du als Text, Hex oder Base64 eingeben. Fügst du eine empfangene Signatur ein, zeigt das Tool sofort, ob sie gültig ist – auch mit Präfix wie „sha256=“.
Alles wird mit der Web Crypto API deines Browsers berechnet. Nachricht und Schlüssel werden nicht hochgeladen und landen auch nicht in der URL.
So funktioniert’s
- Gib die Nachricht ein, z. B. den rohen Body eines Webhooks.
- Trage den geheimen Schlüssel ein und wähle, ob er als Text, Hex oder Base64 vorliegt.
- Wähle die Ausgabe (Hex, Base64 oder Base64URL) und kopiere die Signatur des passenden Algorithmus.
- Zum Prüfen fügst du die empfangene Signatur unter „Signatur prüfen“ ein.
Häufige Fragen
Was ist der Unterschied zwischen HMAC und einem normalen Hash?
Einen normalen Hash wie SHA-256 kann jeder berechnen, er beweist nur, dass Daten unverändert sind. Ein HMAC hängt zusätzlich vom geheimen Schlüssel ab: Ohne den Schlüssel lässt sich keine gültige Signatur erzeugen. Einfache Prüfsummen berechnest du mit dem Hash-Generator.
Warum stimmt meine Webhook-Signatur nicht?
Meist wird nicht exakt der rohe Body signiert: Schon ein umformatiertes JSON, ein anderer Zeilenumbruch oder ein fehlendes Leerzeichen ändern die Signatur. Prüfe außerdem, ob der Anbieter Hex oder Base64 verwendet und ob der Schlüssel als Text oder kodiert vorliegt. Manche Dienste signieren nicht nur den Body, sondern z. B. Zeitstempel und Body zusammen.
Ist HMAC-SHA-1 noch sicher?
Als HMAC ja: Die bekannten Kollisionsangriffe auf SHA-1 brechen HMAC-SHA-1 nicht. Für neue Systeme ist HMAC-SHA-256 trotzdem der übliche Standard.
Wie lang sollte der Schlüssel sein?
Mindestens so lang wie die Ausgabe des Hashs, also 32 zufällige Bytes für HMAC-SHA-256. Einen zufälligen Schlüssel erzeugst du z. B. mit dem Passwort-Generator (lange Zufallspasswörter).
Wird mein Schlüssel gespeichert oder übertragen?
Nein. Die Berechnung läuft vollständig in deinem Browser. In der URL landen nur die gewählten Formate, nie Nachricht oder Schlüssel. Auch im Studio läuft dieser Block nur im Browser, die API bietet ihn bewusst nicht an.