Hashes/Krypto
HMAC Generator
HMAC (Hash-based Message Authentication Code) von Text oder einer Datei mit einem geheimen Schlüssel berechnen — mit acht Algorithmen gleichzeitig: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.
HMAC (Hash-based Message Authentication Code) ist ein Hash, der zusammen mit einem geheimen Schlüssel berechnet wird und beweist, dass eine Nachricht unverändert ist und von jemandem stammt, der diesen Schlüssel kennt. Anders als ein einfacher Hash lässt sich ein HMAC ohne Kenntnis des Geheimnisses nicht fälschen.
So verwendest du es
- Gib Text oder eine Datei und einen geheimen Schlüssel ein — der HMAC wird sofort mit acht Algorithmen gleichzeitig berechnet (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Kopiere die benötigte Variante, um eine Signatur zu prüfen oder mit einem erwarteten Wert zu vergleichen.
- Dieselbe Eingabe und derselbe Schlüssel ergeben immer denselben HMAC — praktisch zum Abgleich mit einer von einem anderen System erhaltenen Signatur.
Typische Anwendungsfälle
- Die Signatur eines Webhooks von einem Zahlungsdienst oder einer API prüfen (die meisten signieren die Payload mit HMAC-SHA256).
- Eine Anfragesignatur für eine API erzeugen, die HMAC-Authentifizierung verlangt.
- Eine nicht übereinstimmende Signatur debuggen — Schlüssel, Eingabekodierung und Algorithmus einzeln prüfen.
Was du wissen solltest
HMAC schützt vor Manipulation und bestätigt die Echtheit des Absenders, verschlüsselt aber nicht die Nachricht selbst — der Inhalt bleibt lesbar.
Ein nicht übereinstimmender HMAC liegt meist an unterschiedlicher Datenkodierung (z. B. JSON-Feldreihenfolge) oder einem versehentlichen Leerzeichen oder Zeilenumbruch, nicht an einem Fehler im Algorithmus selbst.
Häufig gestellte Fragen
Was ist der Unterschied zwischen HMAC und einem einfachen Hash?
Ein einfacher Hash beweist nur, dass Daten nicht verändert wurden; HMAC verwendet zusätzlich einen geheimen Schlüssel, sodass er sowohl Integrität als auch beweist, dass der Absender das gemeinsame Geheimnis kannte — ohne den Schlüssel kann niemand einen gültigen HMAC erzeugen, selbst wenn er den Algorithmus kennt.
Welchen Hash-Algorithmus sollte ich für HMAC wählen?
HMAC-SHA256 ist ein solider moderner Standard. Ältere Optionen wie HMAC-MD5 oder HMAC-SHA1 sind als HMAC speziell noch nicht gebrochen, aber für neue Systeme wird SHA-256 oder stärker empfohlen.
Wird mein geheimer Schlüssel irgendwohin gesendet?
Nein. Der HMAC wird vollständig in Ihrem Browser über die Web Crypto API berechnet — Schlüssel und Nachricht verlassen Ihr Gerät nie.
Warum darf man HMAC nicht mit dem gewöhnlichen Gleichheitsoperator vergleichen?
Ein gewöhnlicher Zeichenkettenvergleich bricht bei der ersten Abweichung ab, und die Ausführungszeit verrät einem Angreifer, wie viele der ersten Zeichen er richtig erraten hat (Timing Attack). Nötig sind Vergleichsfunktionen in konstanter Zeit, etwa hash_equals in PHP.
Kann derselbe Schlüssel für mehrere verschiedene Zwecke verwendet werden?
Das wird nicht empfohlen. Wird derselbe geheime Schlüssel sowohl zum Signieren von Webhooks als auch für einen anderen Zweck verwendet, kompromittiert die Kompromittierung eines Systems automatisch das andere — für jeden einzelnen Zweck sollte ein eigener Schlüssel erzeugt werden.