Security
HMAC-Generator
Der HMAC-Generator berechnet einen Hash-based Message Authentication Code (HMAC) aus einer Nachricht und einem geheimen Schlüssel. HMAC kombiniert eine kryptografische Hash-Funktion mit einem symmetrischen Schlüssel und stellt sicher, dass eine Nachricht weder verändert noch gefälscht wurde. Das Tool unterstützt gängige Hash-Algorithmen wie SHA-256, SHA-384, SHA-512, SHA-1 und MD5 mit Ausgabe in Hex- oder Base64-Format.
Was ist HMAC?
HMAC (Hash-based Message Authentication Code) ist ein Verfahren zur Nachrichtenauthentifizierung, das in RFC 2104 spezifiziert ist. Es kombiniert eine kryptografische Hash-Funktion H mit einem geheimen Schlüssel K nach der Formel: HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m)), wobei ipad und opad feste Füllmuster sind. HMAC schützt sowohl gegen Manipulation der Nachricht als auch gegen Fälschung durch Dritte ohne Kenntnis des geheimen Schlüssels. Im Gegensatz zu einfachem Hashing sind HMAC-Werte gegen Length-Extension-Attacks resistent, da der Schlüssel in beide Hashing-Runden eingeht. HMAC ist Bestandteil zahlreicher Sicherheitsprotokolle wie TLS, JWT, OAuth und Webhook-Signaturen.
Wie funktioniert der HMAC-Generator?
Das Tool nimmt die Eingabenachricht und den geheimen Schlüssel entgegen und berechnet den HMAC nach RFC 2104 mit dem gewählten Hash-Algorithmus. Empfohlen wird HMAC-SHA256 oder HMAC-SHA512 für sicherheitskritische Anwendungen. HMAC-MD5 und HMAC-SHA1 gelten als schwächer, sind aber in bestimmten Legacy-Systemen noch anzutreffen. Der Schlüssel sollte mindestens so lang wie die Hash-Ausgabe sein (z. B. 32 Bytes für HMAC-SHA256) und zufällig generiert werden. Die Ausgabe erfolgt als hexadezimaler String oder Base64-kodiert.
Typische Anwendungsfälle
- Signieren von Webhook-Payloads (z. B. GitHub, Stripe, Shopify) zur Authentifizierung
- Verifizieren der Integrität von API-Anfragen und -Antworten
- Erstellen und Prüfen von JWT-Signaturen (HS256, HS384, HS512)
- Absichern von URLs mit signierten Tokens gegen Manipulation
Schritt-für-Schritt-Anleitung
- Schritt 1: Die zu signierende Nachricht (z. B. den Request-Body) in das Nachrichtenfeld eingeben
- Schritt 2: Den geheimen Schlüssel eingeben (idealerweise zufällig generiert, mindestens 32 Zeichen)
- Schritt 3: Den Hash-Algorithmus wählen (empfohlen: SHA-256 oder SHA-512)
- Schritt 4: Den berechneten HMAC-Wert kopieren und als Signatur im Header oder Parameter übermitteln
Beispiel
Eingabe
Nachricht: 'user_id=42&action=delete', Schlüssel: 'mySuperSecretKey', Algorithmus: SHA-256
Ausgabe
HMAC-SHA256: a4b3c2d1e0f9... (64 Hex-Zeichen)
Tipps & Hinweise
- Tipp: Verwende immer einen zufällig generierten, ausreichend langen Schlüssel – mindestens 32 Bytes für HMAC-SHA256, mindestens 64 Bytes für HMAC-SHA512.
- Tipp: Beim Vergleich von HMAC-Werten immer zeitkonstante Vergleichsfunktionen (Constant-Time Comparison) verwenden, um Timing-Angriffe zu vermeiden.
- Tipp: HMAC allein authentifiziert die Nachricht, schützt aber nicht vor Replay-Angriffen – ergänze Timestamps oder Nonces im signierten Payload.
Häufige Fragen
Was ist der Unterschied zwischen HMAC und einer digitalen Signatur?
HMAC ist ein symmetrisches Verfahren: Beide Parteien kennen denselben geheimen Schlüssel. Eine digitale Signatur ist asymmetrisch: Der Sender signiert mit seinem privaten Schlüssel, jeder kann mit dem öffentlichen Schlüssel verifizieren. HMAC ist schneller und einfacher, aber beide Parteien müssen den Schlüssel sicher ausgetauscht haben.
Ist HMAC-MD5 sicher?
HMAC-MD5 gilt trotz der bekannten Schwächen von MD5 als Einwegfunktion als noch akzeptabel für nicht-kryptografische Anwendungsfälle, da die HMAC-Konstruktion viele Angriffe auf die reine Hash-Funktion entschärft. Für neue Systeme sollte jedoch HMAC-SHA256 oder HMAC-SHA512 gewählt werden.
Wie wird HMAC in JWT verwendet?
Bei HS256/HS384/HS512 in JWT wird der Header und Payload als Base64URL-kodierter String mit HMAC und dem jeweiligen SHA-Algorithmus signiert. Der resultierende HMAC-Wert ist die Signatur des JWT. Empfänger können die Signatur mit demselben geheimen Schlüssel verifizieren.
HMAC-Generator
Berechnet einen hashbasierten Nachrichtenauthentifizierungscode (HMAC) unter Verwendung eines geheimen Schlüssels und deiner bevorzugten Hash-Funktion.
Tool öffnen