# HMAC-SHA256-Generator

Erstelle eine HMAC-SHA256-Signatur aus einer Nachricht und einem geheimen Schlüssel. Das Werkzeug codiert beides als UTF-8, wendet die HMAC-Konstruktion aus RFC 2104 mit SHA-256 an und gibt den 256-Bit-Tag in Hex oder Base64 zurück. Entwickler nutzen es, um Webhook-Signaturen von Diensten wie Stripe, GitHub oder Slack zu debuggen, API-Anfragen zu signieren und Ergebnisse mit ihrem eigenen Code zu vergleichen. Der Schlüssel wird weder zurückgegeben noch protokolliert.

## Häufig gestellte Fragen

### Was ist HMAC-SHA256?

HMAC-SHA256 ist ein Nachrichtenauthentifizierungscode, der aus SHA-256 und einem geheimen Schlüssel gebildet wird, wie in RFC 2104 festgelegt. Nur wer den Schlüssel besitzt, kann den korrekten Tag für eine Nachricht berechnen. Das Ergebnis umfasst 32 Bytes oder 64 Hex-Zeichen.

### Wie überprüfe ich eine Webhook-Signatur?

Füge den exakten rohen Request-Body als Nachricht und dein Signaturgeheimnis als Schlüssel ein und vergleiche dann das Ergebnis mit dem Signatur-Header. Viele Dienste signieren eine Kombination, zum Beispiel den Zeitstempel von Stripe, einen Punkt und den Body. Erstelle die Nachricht daher so, wie es in deren Dokumentation beschrieben ist. Schon ein einziges geändertes Byte ergibt einen anderen Tag.

### Gibt es einen bekannten Testvektor?

RFC 4231, Testfall 2, verwendet den Schlüssel Jefe und die Nachricht what do ya want for nothing? Erwartet wird 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Dieses Werkzeug gibt genau diesen Wert zurück.

### Wie werden Schlüssel und Nachricht codiert?

Beide werden als UTF-8-Text codiert. Wenn dein Geheimnis als Hex oder Base64 angegeben ist, wie es manche Dienste tun, unterscheiden sich die Bytes vom sichtbaren Text. Du musst den Schlüssel daher zuerst in deinem eigenen Code decodieren. Leerzeichen und Zeilenumbrüche zählen in beiden Feldern.

### Wird mein geheimer Schlüssel gespeichert?

Nein. Der Schlüssel wird nur während der Anfrage zur Berechnung des Tags verwendet. Er ist weder in der Antwort enthalten noch wird er protokolliert oder gespeichert.

### Kann der Schlüssel leer oder sehr lang sein?

HMAC akzeptiert Schlüssel jeder Länge, auch einen leeren Schlüssel. Schlüssel mit mehr als 64 Bytes werden zunächst mit SHA-256 gehasht, wie im RFC festgelegt. Wähle für die praktische Verwendung einen zufälligen Schlüssel mit mindestens 32 Bytes.

### Sollte ich Hex oder Base64 wählen?

Verwende das Format, das die andere Seite sendet. GitHub und Stripe verwenden Hex, während Slack Hex mit v0= versieht und viele auf AWS und JWT basierende Systeme Base64 verwenden. Beide codieren dieselben 32 Bytes.

### Ist HMAC-SHA256 dasselbe wie SHA-256 aus aneinandergehängtem Schlüssel und Nachricht?

Nein. HMAC hasht die Nachricht zweimal mit inneren und äußeren aufgefüllten Schlüsseln. Das schützt vor Längenerweiterungsangriffen. Schlüssel und Nachricht aneinanderzuhängen und einmal zu hashen ergibt ein anderes, schwächeres Resultat.

### Wie sollte ich Signaturen in meinem Code vergleichen?

Verwende eine Funktion für zeitkonstante Vergleiche, etwa crypto.timingSafeEqual in Node.js oder hmac.compare_digest in Python. Ein normaler Stringvergleich kann zeitabhängige Informationen über den erwarteten Tag preisgeben.

### Wie groß darf die Nachricht sein?

Nachricht und Schlüssel dürfen zusammen bis zu 5 MiB Text umfassen. Das reicht für typische Webhook-Nutzdaten und API-Anfragen.

Deine Anzeige hier?

[Schreib uns eine E-Mail](mailto:hi@dennn.is?subject=Werbung%20auf%20OneClick%20Pro)

[Anzeige Die agentenfähige Plugin-Suite für WordPress.](https://sleekwp.com/?ref=oneclickpro)
