HMAC-Rechner

HMAC-SHA256 oder HMAC-SHA512 einer Nachricht mit geheimem Schlüssel berechnen – live beim Tippen. Hex-Ausgabe, UTF-8-Eingabe, auch leere Nachrichten.

Eingaben und Dateien bleiben im Browser

Schlüssel und Nachricht

Fügen Sie die zu signierende Nachricht ein (z. B. einen Webhook-Body) oder laden Sie ein Beispiel.

Geben Sie einen geheimen Schlüssel ein – der HMAC wird während der Eingabe berechnet.

Auf dieser Seite

Der HMAC-Rechner berechnet einen schlüsselbasierten Message Authentication Code (RFC 2104) mit SHA-256 oder SHA-512, während Sie tippen. So lassen sich Webhook-Signaturen prüfen oder API-Signaturen nachbilden; Schlüssel und Nachricht bleiben im Browser.

Detaillierte Funktionalität

Geben Sie Geheimer Schlüssel und Nachricht ein; beide werden genau so, wie eingegeben, als UTF-8-Text verwendet. Das Ergebnis wird bei jedem Tastendruck und Algorithmuswechsel neu berechnet und als Hex in Kleinbuchstaben angezeigt: 64 Zeichen bei HMAC-SHA256, 128 bei HMAC-SHA512. Gerechnet wird in einem Rust/WebAssembly-Modul in der Seite.

Eine leere Nachricht ist eine gültige Eingabe: Mit dem Schlüssel key ist HMAC-SHA256 einer leeren Nachricht 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, wie bei OpenSSL und anderen Bibliotheken. Ohne Schlüssel bleibt die Ausgabe leer. Schlüssel, die länger als der Hash-Block sind (64 Byte bei SHA-256, 128 bei SHA-512), werden laut Standard zuerst gehasht.

Das Schlüsselfeld nimmt nur Text an; ein Secret, das ein Dienst als Hex oder Base64 ausgibt, muss also in der Form eingegeben werden, in der der Dienst es tatsächlich als Schlüssel nutzt. Die Ergebnisse sind gegen die Testvektoren aus RFC 4231 geprüft. Nichts wird gespeichert: nach dem Neuladen sind die Felder leer.

Praktische Beispiele

Klassischer Testvektor: Schlüssel key, Nachricht The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.

RFC 4231, Testfall 2: Schlüssel Jefe, Nachricht what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

Leere Nachricht: Schlüssel key mit leerer Nachricht ergibt 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, genau wie printf '' | openssl dgst -sha256 -hmac key.

Webhook prüfen: den unveränderten Request-Body als Nachricht und das Webhook-Secret als Schlüssel einfügen; schickt der Anbieter sha256=<hex>, nur den Hex-Teil mit dem Ergebnis vergleichen.

So verwenden Sie dieses Tool

  1. Schlüssel eingeben

    Das gemeinsame Secret in Geheimer Schlüssel tippen oder einfügen.

  2. Nachricht eingeben

    Genau die signierten Bytes in Nachricht einfügen oder das Feld leer lassen, um den HMAC einer leeren Zeichenkette zu berechnen.

  3. Algorithmus wählen

    SHA-256 oder SHA-512 unter Algorithmus wählen; das HMAC-Ergebnis aktualisiert sich sofort (oder HMAC berechnen klicken).

  4. Kopieren oder leeren

    Kopieren übernimmt den Hex-Wert, Löschen leert beide Felder.

Tipps und Best Practices

  • Genau die Bytes signieren, die der Server signiert hat: umformatiertes JSON, andere Schlüsselreihenfolge oder ein zusätzlicher Zeilenumbruch ändern den HMAC.
  • Im eigenen Code HMACs in konstanter Zeit vergleichen; der Sichtvergleich hier dient nur dem Debugging.
  • Ein Secret mit angehängtem Leerzeichen oder Zeilenumbruch ist ein anderer Schlüssel – bei Abweichungen das Feld prüfen.
  • HMAC-SHA512 ist im Alltag nicht „doppelt so sicher“; nehmen Sie den Algorithmus, den die Gegenseite erwartet.
  • Ist der erwartete Wert Base64, kodiert er dieselben Bytes wie die Hex-Ausgabe – vor dem Vergleich umrechnen.