HMAC-Generator und Verifizierer
Generieren und überprüfen Sie HMAC-Nachrichtenauthentifizierungscodes mit SHA-256, SHA-384, SHA-512 oder SHA-1 mithilfe eines geheimen Schlüssels, vollständig in Ihrem Browser.
Ergebnis
Ein HMAC (Hash-based Message Authentication Code) ist eine verschlüsselte kryptografische Konstruktion, die einen geheimen Schlüssel mit einer Nachricht über eine Hash-Funktion wie SHA-256 kombiniert. Im Gegensatz zu einem einfachen Hash, den jeder allein aus der Nachricht neu berechnen kann, kann ein HMAC nur von jemandem reproduziert werden, der denselben geheimen Schlüssel besitzt – das macht ihn zu einem Authentifizierungscode und nicht nur zu einer Prüfsumme.
Dies ist der grundlegende Unterschied zu einem einfachen Digest: Unser eigenes Hash-Generator-Tool berechnet nicht verschlüsselte Hashes wie MD5 oder SHA-256, die sich hervorragend zur Erkennung versehentlicher Korruption eignen, aber nichts darüber beweisen, wer die Daten erstellt hat, da jeder denselben Hash generieren kann. Ein HMAC beweist sowohl die Integrität (die Nachricht wurde nicht verändert) als auch die Authentizität (der Unterzeichner kannte das gemeinsame Geheimnis), weshalb HMAC der Standardbaustein hinter der API-Anforderungssignierung, den HS256/HS384/HS512-Algorithmen von JWT und der TLS-Datensatzauthentifizierung ist.
Der häufigste Anwendungsfall in der Praxis ist die Überprüfung von Webhook-Signaturen. Dienste wie Stripe, GitHub und Shopify signieren jede Webhook-Nutzlast mit HMAC-SHA256 mithilfe eines von Ihnen konfigurierten Geheimnisses und senden die resultierende Signatur in einem Anforderungsheader. Von Ihrem Server wird erwartet, dass er den HMAC über die Rohnutzlast mit demselben Geheimnis neu berechnet und ihn mit dem Header-Wert vergleicht. Wenn sie übereinstimmen, wissen Sie, dass die Anfrage tatsächlich von diesem Dienst stammt und während der Übertragung nicht manipuliert wurde. Der Verifizierungsmodus dieses Tools reproduziert genau diese Prüfung: Fügen Sie die Nutzdaten, das gemeinsame Geheimnis und die empfangene Signatur ein und erhalten Sie sofort eine Übereinstimmung oder Nichtübereinstimmung.
Alles läuft lokal über die native Web-Crypto-API des Browsers (crypto.subtle.importKey und crypto.subtle.sign), sodass der geheime Schlüssel, der Nachrichtentext und die resultierende Signatur niemals Ihren Computer verlassen – nichts wird auf einen Server hochgeladen, was wichtig ist, da HMAC-Geheimnisse genau die Art von Wert sind, die Sie niemals in ein beliebiges Online-Tool einfügen sollten, das sie protokollieren könnte.