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

  1. Geben Sie das Kopf-JSON ein Es hat die Gestalt `{"alg":"HS256","typ":"JWT"}`. Halten Sie es mit dem gewählten Verfahren im Einklang.
  2. 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.**
  3. Wählen Sie das Signaturverfahren Zur Wahl stehen HS256, HS384 und HS512; die Zahl nennt die Bitlänge des Hashwerts.
  4. 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 alg im Header-JSON automatisch aktualisiert. Bearbeiten Sie den Header direkt, wenn Sie weitere Claims wie kid hinzufü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

Nein, das empfehlen wir nicht. Zwar erfolgt das Signieren selbst sicher im Browser, doch einen Produktionsschlüssel in ein Browser-Tool einzugeben ist aus Sicherheitssicht keine gute Praxis. Dieses Tool ist für die Überprüfung des API-Verhaltens während der Entwicklung oder zu Lernzwecken gedacht.

HS256 ist ein symmetrisches Verfahren, bei dem Absender und Empfänger denselben geheimen Schlüssel teilen, während RS256 ein Public-Key-Verfahren (asymmetrisch) ist, bei dem ein privater Schlüssel signiert und ein öffentlicher Schlüssel verifiziert. Dieses Tool unterstützt ausschließlich die HMAC-Familie – HS256, HS384 und HS512 – und unterstützt keine Public-Key-Verfahren wie RS256 oder ES256.

Ja, Sie können das Header-JSON direkt bearbeiten. Stimmen jedoch der ausgewählte Algorithmus (der tatsächlich zur Signaturberechnung verwendet wird) und der Wert des Felds 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.

Sie können die erzeugte JWT-Zeichenfolge in das begleitende Tool „JWT-Decoder“ einfügen, um Header und Payload sofort zu überprüfen. Die tatsächliche Gültigkeit der Signatur lässt sich jedoch nur durch die serverseitige Prüflogik, die denselben geheimen Schlüssel besitzt, endgültig bestätigen.
Tool-kun

Ü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.