Zum Inhalt springen

HMAC-Generator

HMAC Generator

Berechnet einen HMAC über eine Nachricht mit gewähltem Hash und gewählter Schlüsselkodierung, für Webhook-Signaturprüfungen.

Berechnet einen HMAC – einen Digest mit Schlüssel – über Text oder eine Datei, wobei der Schlüssel als Text, Hex oder Base64 gelesen wird. Es ist derselbe Bildschirm wie das Hash-Werkzeug mit eingeschalteter HMAC-Hälfte, denn ein HMAC ist ein Hash mit Schlüssel, und sie zu trennen hieße zwei Seiten, die jedes Bedienelement teilen.

🔒 Läuft vollständig in Ihrem Browserhmacsignaturewebhookcrypto
Ausgabe

Eingabe

Datei ablegen, um ihre Prüfsumme zu bilden

Wird in diesem Tab gelesen. Nichts wird hochgeladen.

Text wird als UTF-8-Bytes gehasht – das ist, was jedes andere Werkzeug meint, wenn es eine Zeichenkette hasht.

Digests

Fügen Sie eine veröffentlichte Prüfsumme ein; die passende Zeile leuchtet auf.

Eine Zeile je Algorithmus, mit dem Digest und einer Kopieren-Schaltfläche.
AlgorithmusDigestKopieren
MD5Kollisionen lassen sich billig konstruieren. Als Prüfsumme in Ordnung, für Signaturen oder Passwörter nicht.
SHA-1Kollisionen sind vorgeführt worden. Für eine alte Prüfsumme in Ordnung, für nichts Neues.
SHA-256
SHA-384
SHA-512
CRC-32Ein Code zur Fehlererkennung, kein Hash. Zwei Dateien können denselben aus Versehen teilen, absichtlich erst recht.

Eingabe

0 Byte

Quelle

Textfeld

So funktioniert es

  1. Schalten Sie HMAC ein

    Das Schlüsselfeld erscheint, und CRC-32 fällt aus der Tabelle – es ist eine Prüfsumme, keine Hashfunktion, und hat keinen HMAC.

  2. Geben Sie an, wie der Schlüssel zu lesen ist

    Hier gehen HMACs meist schief. Ein als `0a1b2c` geschriebener Schlüssel sind drei Bytes als Hex und sechs als Text, und die beiden ergeben völlig verschiedene Digests.

  3. Vergleichen Sie mit der Signatur, die Sie erhalten haben

    Fügen Sie sie in das Vergleichsfeld ein; die passende Zeile wird hervorgehoben. Webhook-Signaturen von Stripe, GitHub und Slack sind alle HMAC-SHA256 über einen bestimmten String, sodass die richtige Nachricht ebenso zählt wie der Schlüssel.

Häufige Fragen

Warum stimmt mein HMAC nicht mit dem im Header überein?

Meist die Nachricht, nicht der Schlüssel. Eine Webhook-Signatur wird über einen exakten String berechnet – oft Zeitstempel, Trennzeichen und roher Body –, und ein Body, der durch einen JSON-Parser gegangen und neu serialisiert wurde, ist ein anderer String. Signieren Sie die Bytes, die Sie empfangen haben.

Ist HMAC dasselbe wie Schlüssel und Nachricht zusammen zu hashen?

Nein, und das ist sein Zweck. `hash(key + message)` ist bei MD5, SHA-1 und SHA-256 für einen Length-Extension-Angriff anfällig; die Zwei-Durchgang-Konstruktion von HMAC mit innerem und äußerem Padding ist es, was das beseitigt. Bauen Sie nie Ihren eigenen.

Verlässt der Schlüssel den Tab?

Nein. Er wird verwendet, um in diesem Tab einen WebCrypto-Schlüssel zu importieren, und sonst nichts – nicht übertragen, nicht gespeichert, nicht in die URL gesetzt. Beim Neuladen der Seite geht er verloren, was für ein Geheimnis das richtige Verhalten ist.

Wie lang sollte der Schlüssel sein?

Mindestens so lang wie der Digest – 32 Bytes für SHA-256. HMAC akzeptiert jede Länge, aber ein Schlüssel, der länger als die Blockgröße ist, wird zuerst heruntergehasht, und ein kurzer Schlüssel ist schlicht ein kurzer Schlüssel: Die Sicherheit ist die Entropie, die Sie hineinstecken.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.