HMAC-Signatur erstellen
Diese Funktion berechnet eine HMAC-Signatur aus einer Nachricht und einem geheimen Schlüssel oder prüft eine vorhandene Signatur auf Gültigkeit. Gedacht für Entwicklerinnen und Entwickler, die Webhooks absichern, API-Anfragen signieren oder eine eingehende Signatur nachvollziehen müssen, ohne dafür eigenen Code zu schreiben.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Der Unterschied zwischen Hash und HMAC
Ein einfacher Hashwert lässt sich von jedem berechnen, der die Nachricht kennt – zur Absicherung reicht das nicht. HMAC verknüpft die Nachricht zusätzlich mit einem geheimen Schlüssel, den nur Sender und Empfänger kennen. Nur wer den Schlüssel besitzt, kann eine gültige Signatur erzeugen oder prüfen; genau darauf verlassen sich Webhooks von Zahlungsanbietern und viele APIs.
Signatur erstellen oder eine vorhandene prüfen
Sie geben die Nachricht, den geheimen Schlüssel und den gewünschten Algorithmus ein und erhalten die berechnete Signatur. Umgekehrt lässt sich eine erhaltene Signatur zusammen mit derselben Nachricht und demselben Schlüssel eingeben, um zu prüfen, ob sie tatsächlich gültig ist – nützlich, um die Signaturprüfung eines eingehenden Webhooks manuell nachzuvollziehen, bevor sie im eigenen Code eingebaut wird.
Ihr Schlüssel bleibt bei Ihnen
Der geheime Schlüssel wird bei jeder Berechnung neu von Ihnen eingegeben und zu keinem Zeitpunkt gespeichert – weder im Browser noch auf einem Server. Nach dem Verlassen der Seite ist er wieder weg, so wie es sich für ein Geheimnis gehört, das über keine dritte Stelle laufen sollte.
Für die Automatisierung per API
Wer HMAC-Signaturen regelmäßig in einer Pipeline prüfen oder erzeugen möchte, etwa beim Testen einer Webhook-Integration, kann denselben Aufruf über die API ansprechen, für $0.002 pro Anfrage. Die manuelle Nutzung im Browser bleibt davon unabhängig kostenlos.
Anwendungsfälle
Eingehenden Zahlungs-Webhook prüfen
Sabine Schneider entwickelt eine Zahlungsintegration und prüft manuell, ob die vom Zahlungsanbieter mitgesendete HMAC-Signatur zur empfangenen Nachricht passt, bevor sie die Prüfung fest im eigenen Code verankert.
Interne API-Aufrufe zwischen zwei Diensten absichern
Die Schneider IT-Systeme GmbH & Co. KG signiert Anfragen zwischen zwei internen Diensten mit einem gemeinsamen Schlüssel, damit ein Dienst gefälschte Anfragen sofort erkennt.
Eine Signaturprüfung debuggen
Ein freiberuflicher Entwickler bekommt bei einer Webhook-Integration ständig eine ungültige Signatur gemeldet und rechnet die HMAC-Berechnung Schritt für Schritt nach, um den Fehler in der eigenen Implementierung zu finden.
Häufige Fragen
Welche Algorithmen werden für die HMAC-Berechnung unterstützt?
SHA-256 als Standard sowie SHA-1 und SHA-512 für Systeme, die einen anderen Algorithmus verlangen.
Wird mein geheimer Schlüssel gespeichert?
Nein, zu keinem Zeitpunkt. Sie geben ihn für jede Berechnung neu ein, und er wird danach nicht aufbewahrt.
Kann ich damit auch eine vorhandene Signatur prüfen?
Ja. Sie geben Nachricht, Schlüssel und die erhaltene Signatur ein, und die Funktion zeigt an, ob sie gültig ist.
Worin unterscheidet sich HMAC von einem einfachen Hash?
Ein einfacher Hash lässt sich von jedem berechnen, der die Nachricht kennt. HMAC bindet zusätzlich einen geheimen Schlüssel ein, sodass nur Sender und Empfänger eine gültige Signatur erzeugen können.
Muss ich mich anmelden?
Nein. Es gibt derzeit keine Konten – die Nutzung im Browser ist kostenlos und ohne Limit.
Was kostet die Nutzung über die API?
$0.002 pro Anfrage. Die Berechnung im Browser bleibt unabhängig davon kostenlos.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/hmac \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/dev/hmac", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/hmac",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/hmac", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/hmac", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"items": [
"valor-1",
"valor-2"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.hmac",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |