HMAC-Generator
HMAC ist der Algorithmus hinter den meisten signierten Webhooks, AWS Signature v4-Headern und JWT HS256-Token. Geben Sie eine Nachricht und einen geheimen Schlüssel ein, wählen Sie eine Hash-Familie aus, und dieser Generator erzeugt das HMAC genau wie in RFC 2104 spezifiziert, nützlich zur Überprüfung dessen, was Ihr Backend senden wird, oder zur Reproduktion einer Signatur, die Sie von einer API erhalten haben.
So berechnen Sie ein HMAC
-
1
Fügen Sie die Nachricht ein
Die genauen Bytes, die signiert werden sollen, eine Webhook-Nutzlast, eine kanonische Anfrage oder irgendeine Zeichenfolge.
-
2
Geben Sie den geheimen Schlüssel ein
Kann Text oder Hex sein. Der Generator füllt ihn auf oder hasht ihn auf die Blockgröße gemäß der RFC.
-
3
Wählen Sie den Hash-Algorithmus
SHA-256 ist der Standard; wählen Sie SHA-1, SHA-384, SHA-512 oder MD5 für die Abwärtskompatibilität.
-
4
Kopieren Sie die Signatur
Die Ausgabe ist hexadezimal in Kleinbuchstaben und kann direkt in eine Webhook-Konfiguration oder einen Autorisierungsheader eingefügt werden.
HMAC im Hintergrund
HMAC umschließt eine einfache Hash-Funktion in einer schlüsselbasierten Konstruktion, sodass die Signatur ohne den Schlüssel nicht gefälscht werden kann.
Das RFC 2104 Rezept
HMAC(k, m) = H((k' ⊕ opad) ∥ H((k' ⊕ ipad) ∥ m))
wobei k' der auf die Hash-Blockgröße aufgefüllte Schlüssel ist, opad = 0x5c wiederholt und ipad = 0x36 wiederholt.
Algorithmus-Auswahl
| Algorithmus | Blockgröße | Ausgabelänge | Empfohlen für |
|---|---|---|---|
| HMAC-SHA-256 | 64 Bytes | 32 Bytes | Moderner Standard, Webhook-Signierung |
| HMAC-SHA-384 | 128 Bytes | 48 Bytes | Höhere Sicherheit bei API-Signierungen |
| HMAC-SHA-512 | 128 Bytes | 64 Bytes | Langfristige Tokens |
| HMAC-SHA-1 | 64 Bytes | 20 Bytes | Legacy (AWS S3 v2, OAuth 1.0) |
| HMAC-MD5 | 64 Bytes | 16 Bytes | Nur Legacy; vermeiden für neue Arbeiten |
Wo HMAC auftaucht
- GitHub, Stripe, Shopify Webhooks: Header
X-Hub-Signature-256,Stripe-Signatureusw. - AWS Signature v4: eine Kette von HMAC-SHA256 über die kanonische Anfrage.
- JWT HS256: die Token-Signatur ist
HMAC-SHA-256(header.payload, secret). - Passwort-Zurücksetz-Token: HMAC über user_id + Ablauf + ein Site-Geheimnis.
Häufige Fehler
- Einen hex-kodierten Schlüssel als Text übergeben, anstatt ihn zuerst in Bytes zu dekodieren.
- Falsche Nutzlast-Bytes signieren: einige Webhooks signieren den rohen Anfragekörper einschließlich Leerzeichen, andere signieren eine kanonische Form.
==in JavaScript oder Python verwenden, um Signaturen zu vergleichen; immer einen zeit-sicheren Vergleich verwenden, um zeitliche Angriffe zu widerstehen.
Häufig gestellte Fragen
Fast immer, weil sich die Nachrichtenbytes unterscheiden. Das Signieren des JSON-parsed Körpers führt zu Leerzeichenänderungen; signieren Sie den rohen Anfragekörper. Überprüfen Sie auch, ob der Schlüssel auf beiden Seiten gleich dekodiert wird (Hex vs. rohe Bytes).
Ja. Wenn der Schlüssel kürzer als die Hash-Blockgröße ist, wird er mit Nullen aufgefüllt; wenn er länger ist, wird er zuerst gehasht. RFC 2104 empfiehlt Schlüssel, die mindestens so lang sind wie die Ausgabe (32 Bytes für SHA-256).
HMAC ist immer noch resistent gegen bekannte MD5-Kollisionsangriffe, da der Angriff nicht auf die HMAC-Konstruktion übergreift. Verwenden Sie jedoch HMAC-SHA-256 für neuen Code, Werkzeuge und Prüfer erwarten dies.
Ja. Die Nachricht und der geheime Schlüssel werden über eine verschlüsselte HTTPS-Verbindung an unseren Server gesendet, damit das HMAC berechnet werden kann. Sie werden nur für die Berechnung verwendet und weder gespeichert noch protokolliert.
Verwandte Tools
Base64-Datei-Encoder
Kodieren Sie jede Datei (PDF, ZIP, Bild, ausführbare Datei) in Base64-Text zum Einbetten in JSON, E-Mail, YAML oder Daten-URIs. Läuft lokal, kein Upload.
CSR-Generator
Generieren Sie eine PEM-codierte Zertifikatsanfrage und den passenden RSA-privaten Schlüssel. Geben Sie den Common Name, die Organisationsfelder und die Schlüsselgröße (2048, 3072 oder 4096 Bits) an.
A1Z26-Code-Encoder
Text mit dem A1Z26-Code (A=1, B=2, ... Z=26) codieren oder eine Zahlenfolge zurück in Buchstaben decodieren, mit anpassbarem Trennzeichen.
Base32-Encoder/Decoder
Base32-Strings mit dem RFC 4648-Alphabet kodieren und dekodieren. Nützlich für TOTP-Geheimnisse, groß-/kleinschreibungsunempfindliche Tokens und von Menschen eingegebene Identifikatoren.
AES Verschlüsseln / Entschlüsseln
Verschlüsseln und entschlüsseln Sie risikoarmen Text mit AES-OpenSSL-Chiffren. Das Passwort wird mit SHA-256 gehasht, die Base64-Ausgabe enthält IV plus Chiffretext.
bcrypt-Generator
Generieren Sie einen bcrypt-Hash aus einem Klartextpasswort. Anpassbarer Kostenfaktor von 4 bis 13, kompatibel mit Laravel, Django, Node und PHP.
Tool in anderen Sprachen verfügbar
- Gerador de HMAC [PT]
- Bộ tạo HMAC [VI]
- Generador de HMAC [ES]
- HMACジェネレーター [JA]
- مولّد HMAC [AR]
- HMAC-generator [SV]
- Générateur HMAC [FR]
- ตัวสร้าง HMAC [TH]
- HMAC 생성기 [KO]
- HMAC-generator [NL]
- HMAC Generator [ID]
- Generator HMAC [PL]
- Генератор HMAC [RU]
- HMAC Jeneratörü [TR]
- HMAC 生成器 [ZH]
- HMAC Generator [EN]
- Generatore HMAC [IT]