Entwickler / Unterschriften

HMAC-Generator (SHA-256, SHA-512)

Erzeuge eine HMAC-Signatur für eine Nachricht und einen geheimen Schlüssel mit SHA-256, SHA-384, SHA-512 oder SHA-1 – als Hexadezimalwert und Base64 zum Testen von Webhook- und API-Signaturen.

HMAC-Generator (SHA-256, SHA-512): HMAC kombiniert einen geheimen Schlüssel über eine Hashfunktion mit einer Nachricht. Dadurch kann nur jemand mit dem Schlüssel dieselbe Signatur erzeugen. Die Berechnung erfolgt mit der Web Crypto API deines Browsers – derselben Implementierung, die der Browser für HTTPS verwendet. Ein leerer Schlüssel ist zulässig; er wird als Schlüssel mit null Bytes behandelt, wie es der HMAC-Standard definiert. Läuft zu 100% lokal in deinem Browser, ohne Datei-Uploads zum Server.

Ausführungen
In deinem Browser
Kosten
Kostenlos · ohne Anmeldung
Verfügbarkeit
Einsatzbereit
HMAC-GeneratorLokale Verarbeitung

Läuft vollständig in deinem Browser

Hex—
Base64—

Die Nachricht wird genau wie eingegeben als UTF-8-Text gelesen, einschließlich Leerzeichen und Zeilenumbrüchen; ein abschließender Zeilenumbruch verändert das Ergebnis. Webhooks von Diensten wie Stripe und GitHub werden auf diese Weise mit HMAC-SHA256 signiert.

Webhook verifizieren

Verwende den rohen Request-Body, bevor du ihn analysierst, berechne den HMAC mit dem gemeinsamen Geheimnis und vergleiche ihn mit dem Signatur-Header mithilfe eines Vergleichs in konstanter Zeit. So lässt sich nicht anhand der benötigten Zeit erkennen, wie viele Zeichen übereinstimmen. Lehne Anfragen ab, deren Zeitstempel mehr als einige Minuten zurückliegt, um Replay-Angriffe zu verhindern.

Für einen Hash ohne Schlüssel verwende den Hash-Generator, für signierte Token den JWT-Decoder.

Schlüssel

Ein Schlüssel, der so lang wie die Hash-Ausgabe ist – 32 zufällige Bytes für SHA-256 –, bietet die volle Sicherheit; längere Schlüssel werden zuerst auf diese Länge gehasht. Halte Schlüssel aus Code-Repositories heraus und tausche sie aus, wenn sie öffentlich werden.

So benutzt du es

  1. Füge die Nachricht genau so ein, wie sie gesendet wurde, zum Beispiel den unveränderten Body eines Webhooks.
  2. Gib den geheimen Schlüssel als Text oder Hexadezimalwert ein und wähle den Hash aus.
  3. Vergleiche das Ergebnis als Hexadezimalwert oder Base64 mit der empfangenen Signatur.

Datenschutz & Einschränkungen

Die Nachricht und der Schlüssel bleiben in deinem Browser; nichts wird irgendwohin gesendet.

Ähnliche Tools

Häufige Fragen

Warum stimmt meine Signatur nicht mit der des Webhooks überein?

Die signierte Nachricht muss Byte für Byte dem unveränderten Body entsprechen: Das Parsen und erneute Serialisieren von JSON oder ein fehlender beziehungsweise zusätzlicher Zeilenumbruch verändert sie. Manche Dienste signieren einen Zeitstempel und den Body zusammen, etwa Stripe mit t=…,payload.

Ist HMAC-SHA1 noch sicher?

Für HMAC gilt es im Gegensatz zu SHA-1 beim einfachen Hashen weiterhin als sicher. Neue Systeme sollten jedoch HMAC-SHA256 verwenden.

Hexadezimalwert oder Base64?

Beide sind Darstellungen derselben Bytes. Verwende die Darstellung, die der Dienst anzeigt. GitHub verwendet Hexadezimalwerte mit dem Präfix sha256=, viele andere Dienste Base64.

Kostenloses Tool · läuft in deinem browser · kein Konto nötig