HMAC-SHA1, SHA-256, SHA-384 und SHA-512 von Text oder einer Datei, dazu Signaturprüfung
Läuft in Ihrem Browser. Nichts, was Sie eingeben, wird irgendwohin gesendet.Ein HMAC beweist, dass eine Nachricht von jemandem mit dem gemeinsamen Geheimnis stammt; so wird ein Webhook geprüft. Unterstützt werden SHA-1, SHA-256, SHA-384 und SHA-512, für Text oder eine Datei bis 200 MB. Das Geheimnis verlässt nie Ihren Browser, was bei einem Signaturschlüssel wichtig ist.
Diese Seite wurde maschinell aus dem englischen Original übersetzt. Die Übersetzung wurde noch von keinem Menschen geprüft; maßgeblich ist die englische Fassung. Englisches Original lesen
Wählen Sie unter Algorithmus SHA-1, SHA-256, SHA-384 oder SHA-512.
Geben Sie den Geheimen Schlüssel ein und legen Sie fest, ob er als Text, Hex oder Base64 geschrieben ist.
Fügen Sie die Nachricht unter Text ein, oder wechseln Sie zu Datei und klicken Sie auf Datei auswählen.
Kopieren Sie das Ergebnis als Hex, Base64 oder Base64URL mit dem Kopiersymbol; Strg+Enter kopiert den Hex-Wert.
Dieser HMAC-Generator berechnet einen Hash mit Schlüssel für Text oder eine Datei mit SHA-1, SHA-256, SHA-384 oder SHA-512 und zeigt das Ergebnis schon beim Tippen als Hex, Base64 und URL-sicheres Base64. Er prüft auch: Fügen Sie die erwartete Signatur ein, und er sagt Ihnen, ob sie übereinstimmt.
Mit HMAC belegen zwei Systeme, dass eine Nachricht von jemandem mit einem gemeinsamen Geheimnis stammt und unterwegs nicht verändert wurde. Entwickler greifen dazu, wenn der Webhook eines Zahlungsanbieters die Prüfung nicht besteht und sie wissen müssen, ob Geheimnis, Body oder Header falsch ist, wenn sie eine Signaturfunktion schreiben und gegen ein bekanntes Ergebnis prüfen, oder wenn eine API-Dokumentation eine Beispielsignatur zum Nachvollziehen zeigt.
Der Schlüssel kann als Text, Hex oder Base64 eingegeben werden, weil Anbieter Geheimnisse in allen drei Formen veröffentlichen. Die erwartete Signatur kann Hex oder Base64 sein und ihr Header-Präfix behalten, etwa sha256= von GitHub oder das Format t=,v1= von Stripe. Der Vergleich läuft in konstanter Zeit, so wie es auch Ihr Server tun sollte.
Alles geschieht in Ihrem Browser über die Web Crypto API. Schlüssel und Nachricht werden nie hochgeladen, protokolliert oder gespeichert, auch nicht in diesem Browser; gemerkt werden nur der gewählte Algorithmus und das Schlüsselformat. Dateien bis 200 MB lassen sich signieren, da die ganze Datei auf einmal im Speicher liegen muss.
Wenn eine Webhook-Prüfung fehlschlägt, liegt es meist am Body: Die Signatur deckt die exakten Rohbytes ab, und ein JSON-Body, den ein Framework neu serialisiert hat, passt nicht mehr. Verwandte Werkzeuge: JWT Decoder, Base64 Encoder, Bcrypt Hash and Verify.
Wählen Sie SHA-256, tippen oder fügen Sie den geheimen Schlüssel ein und geben Sie dann die Nachricht ein oder wählen Sie eine Datei. Die Signatur erscheint sofort als Hex und Base64; klicken Sie auf Kopieren neben der Form, die Ihre API erwartet. Liegt Ihr Schlüssel als Hex oder Base64 statt als Text vor, stellen Sie zuerst das Schlüsselformat um, denn dieselben Zeichen ergeben dekodiert andere Bytes.
Nein. Der HMAC wird in Ihrem Browser mit der Web Crypto API berechnet, Schlüssel und Nachricht verlassen die Seite nie. Nichts, was Sie eingeben, wird protokolliert oder gespeichert, auch nicht im lokalen Speicher. Nur der gewählte Algorithmus und das Schlüsselformat werden für das nächste Mal auf diesem Gerät gemerkt.
Meist ist der Body nicht Byte für Byte das, was der Absender signiert hat: Ein Framework hat das JSON geparst und neu serialisiert, Zeilenenden geändert oder Leerraum entfernt. Signieren Sie den Roh-Body. Weitere Ursachen sind das falsche Geheimnis (Test- und Live-Schlüssel unterscheiden sich), ein Hex-Geheimnis, das als Text behandelt wird, oder ein Vergleich von Hex mit einer Base64-Signatur.
Einen einfachen Hash kann jeder berechnen, er beweist also nichts darüber, wer ihn erstellt hat. HMAC mischt einen geheimen Schlüssel hinein, sodass nur jemand mit dem Schlüssel den richtigen Wert erzeugen kann. Außerdem widersteht er Length-Extension-Angriffen, die den naiven Ansatz brechen, den Schlüssel gefolgt von der Nachricht zu hashen.
Ein gewöhnlicher Zeichenkettenvergleich bricht beim ersten abweichenden Zeichen ab, seine Dauer verrät also, wie viel einer geratenen Signatur richtig war. Über viele Anfragen gemessen kann ein Angreifer so eine gültige Signatur Byte für Byte aufbauen. Dieses Werkzeug vergleicht jedes Mal jedes Byte, und Ihr Servercode sollte das auch tun.
Textnachrichten jeder praktischen Länge und Dateien bis 200 MB, weil Web Crypto die ganze Nachricht im Speicher braucht. Unterstützt werden SHA-1, SHA-256, SHA-384 und SHA-512; MD5 gibt es in Web Crypto nicht, und für neue Signaturen sollte es ohnehin nicht verwendet werden. Schlüssel müssen mindestens ein Byte lang sein.
Kommen Sie nicht weiter? Fragen Sie zu HMAC-Generator und jeder, der es weiß, kann antworten. Kein Konto nötig.