JWT-Encoder (Erzeugen & Signieren)
Erzeugen Sie aus Header- und Payload-JSON einen mit HMAC (HS256, HS384 oder HS512) signierten JWT (JSON Web Token) – direkt in Ihrem Browser. Nichts, auch nicht der geheime Schlüssel, wird an einen Server gesendet.
Unterstützte HMAC-Signaturalgorithmen
| Algorithmus | Hashfunktion | Signaturlänge | Beschreibung |
|---|---|---|---|
| HS256 | SHA-256 | 256 Bit (32 Byte) | Die am weitesten verbreitete Standard-HMAC-Signatur. Sie ist Standard in vielen Implementierungen, unter anderem bei OAuth-2.0- und OpenID-Connect-ID-Tokens. |
| HS384 | SHA-384 | 384 Bit (48 Byte) | Eine mittlere Option für den Fall, dass eine längere Signatur als bei HS256 für zusätzliche Sicherheitsmarge gewünscht ist. |
| HS512 | SHA-512 | 512 Bit (64 Byte) | Hat die längste Signaturlänge und wird meist mit einem ausreichend langen, zufälligen geheimen Schlüssel kombiniert. |
Ein JWT erzeugen und signieren
Dieses Werkzeug setzt aus dem JSON von Kopf und Nutzlast auf der Stelle ein JWT zusammen und signiert es mit HMAC nach HS256, HS384 oder HS512. Alles, was Sie eingeben, den geheimen Schlüssel eingeschlossen, wird allein im Browser verarbeitet und niemals an einen Server geschickt.
**Am häufigsten missverstanden wird hier, dass die Signatur der Erkennung von Veränderungen dient und keine Verschlüsselung ist.** Kopf und Nutzlast eines JWT sind lediglich Base64URL-kodiert, sodass **jeder, der das Token in Händen hält, den Inhalt ohne Weiteres lesen kann.** Deshalb haben Passwörter und persönliche Angaben in einer Nutzlast nichts zu suchen. Der zweite Punkt betrifft die Art des Schlüssels: Die HS-Familie beruht darauf, dass **die signierende und die prüfende Seite dasselbe Geheimnis teilen.** Soll die Prüfung andernorts geschehen, greift man zu einem Verfahren mit öffentlichem Schlüssel wie RS256 oder ES256, das einem das Herausgeben des Geheimnisses erspart.
So erzeugen Sie eines
- Geben Sie das Kopf-JSON ein Es hat die Gestalt `{"alg":"HS256","typ":"JWT"}`. Halten Sie es mit dem gewählten Verfahren im Einklang.
- Geben Sie das Nutzlast-JSON ein Schreiben Sie die benötigten Angaben hinein, etwa `sub`, `iat` und `exp`. **Lassen Sie alles draußen, was geheim bleiben soll.**
- Wählen Sie das Signaturverfahren Zur Wahl stehen HS256, HS384 und HS512; die Zahl nennt die Bitlänge des Hashwerts.
- Geben Sie das Geheimnis ein und nehmen Sie das Token Heraus kommt eine Zeichenkette aus drei durch Punkte verbundenen Teilen.
Tipps für die Nutzung
- Der JWT wird vollständig mit der Web Crypto API Ihres Browsers signiert – Header, Payload und geheimer Schlüssel werden niemals an den Server von toolbase.cc gesendet.
- Beim Wechseln des Signaturalgorithmus (HS256/HS384/HS512) wird das Feld
algim Header-JSON automatisch aktualisiert. Bearbeiten Sie den Header direkt, wenn Sie weitere Claims wiekidhinzufügen möchten. - Dieses Tool unterstützt ausschließlich HMAC-Algorithmen (symmetrischer Schlüssel). Benötigen Sie ein Public-Key-Verfahren wie RS256 oder ES256, verwenden Sie stattdessen eine serverseitige Bibliothek, etwa ein JWT-Paket für Node.js.
- Denken Sie nach dem Bearbeiten von Header oder Payload daran, erneut auf „JWT erzeugen“ zu klicken – sonst zeigt das Ergebnis weiterhin den mit den vorherigen Eingaben signierten Token.
- Um den Inhalt eines gerade erzeugten JWT zu prüfen, fügen Sie ihn in das begleitende Tool JWT-Decoder ein und kontrollieren Sie Header und Payload.
Wofür Sie es nutzen können
Beim Prüfen des Verhaltens einer Schnittstelle
**Ein Token mit beliebigen Angaben prägen zu können, beschleunigt das Durchspielen der Zweige einer Berechtigungsregel.**
Beim Prüfen des Umgangs mit dem Ablauf
Erzeugen Sie ein Token, dessen `exp` in der Vergangenheit liegt, und bestätigen Sie, dass ein abgelaufenes Token ordnungsgemäß abgewiesen wird.
Beim Vorbereiten von Token für Tests
Sie können ein Token festen Inhalts erzeugen, das in einem automatisierten Test als Vorgabe dient.
Beim Erlernen des Aufbaus eines JWT
Erzeugt man wiederholt mit wechselnder Eingabe, sieht man, an welcher Stelle des Tokens jedes Stück landet.
Begriffe zu JWT
- Kopf
- Der erste Teil, der Verfahren und Art angibt. Er führt `alg` und `typ`.
- Nutzlast
- Der zweite Teil, der die Angaben aufnimmt. **Er ist bloß Base64URL-kodiert und in keiner Weise verschlüsselt.**
- Signatur
- Der dritte Teil, aus Kopf und Nutzlast mit einem Schlüssel berechnet. **Er dient der Erkennung von Veränderungen und trägt nichts dazu bei, den Inhalt zu verbergen.**
- Angabe
- Jeder Eintrag innerhalb der Nutzlast. Zu den festgelegten zählen `sub` für den Gegenstand, `iat` für den Zeitpunkt der Ausstellung und `exp` für den Ablauf.
- HMAC
- Ein Verfahren zur Nachrichtenauthentisierung mit gemeinsamem Schlüssel. **Die signierende wie die prüfende Seite müssen dasselbe Geheimnis besitzen.**
- Base64URL
- Base64 mit vertauschten Sonderzeichen, damit es in einer URL stehen kann: `+` und `/` werden zu `-` und `_`, die abschließende Füllung entfällt.
Häufig gestellte Fragen
alg nicht überein, kann eine andere Implementierung den Token bei der Prüfung mit einem Fehler ablehnen – achten Sie daher darauf, dass beide stets übereinstimmen.
Übrigens – Warum das Signieren eines JWT vollständig im Browser möglich ist
JWT-Signaturalgorithmen lassen sich grob in zwei Familien einteilen: „symmetrische“ Algorithmen (HMAC, also HS256/HS384/HS512), bei denen Absender und Empfänger denselben geheimen Schlüssel teilen, und „Public-Key“-Algorithmen (wie RS256 und ES256), bei denen ein privater Schlüssel signiert und ein öffentlicher Schlüssel verifiziert. Da Ersteres vollständig mit crypto.subtle.sign() der vom W3C standardisierten Web Crypto API (SubtleCrypto) berechnet werden kann – ohne jede externe Bibliothek –, beschränkt sich dieses Tool bewusst auf HMAC-Algorithmen.
Die Sicherheit einer HMAC-Signatur hängt vollständig davon ab, wie schwer der geheime Schlüssel zu erraten ist, nicht vom Inhalt des Headers oder Payloads. RFC 7518 (JSON Web Algorithms) empfiehlt für HS256 eine Schlüssellänge von mindestens 256 Bit (32 Byte); wird ein kurzes Wort oder eine Zeichenfolge aus einem Wörterbuch als geheimer Schlüssel verwendet, besteht die Gefahr, dass die Signatur per Brute-Force gefälscht wird. In echten Produktivumgebungen sollte eine ausreichend lange, zufällig generierte Zeichenfolge als geheimer Schlüssel verwendet werden.
Dieses Tool ist ein Entwickler-Hilfsmittel für die Überprüfung des API-Verhaltens während der Entwicklung oder zum Testen der Signaturprüf-Logik von Webhooks. Der von Ihnen eingegebene geheime Schlüssel wird nur im Speicher Ihres Browsers verarbeitet und niemals extern übertragen, aber das Risiko, dass ein gemeinsam genutztes Gerät oder eine Browser-Erweiterung die Zwischenablage oder Eingaben mitliest, ist nicht null. Wir empfehlen dringend, niemals einen tatsächlich in der Produktion verwendeten Schlüssel in ein solches Tool einzugeben, selbst nicht nur zu Testzwecken.