JWT Generator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.

Signing uses the browser's WebCrypto HMAC implementation (crypto.subtle.sign). The secret is typed into this page and used here — it is never sent to a server, never logged, and never stored. Only HMAC algorithms are offered: RS/ES signing would require pasting a private key into a web page.

Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JWT Generator

Baut ein JSON Web Token aus einem von Ihnen gelieferten Header und Payload und signiert es vollständig in Ihrem Browser mit HMAC-SHA-256, -384 oder -512 unter Ihrem Secret.

How it works

Header- und Payload-JSON werden per Base64URL kodiert und mit einem Punkt verbunden, und diese Zeichenkette ist die Signatureingabe. WebCrypto berechnet darüber mit Ihrem Secret einen HMAC, dessen Ergebnis per Base64URL kodiert und als dritter Abschnitt angehängt wird. Die Verifikation ist derselbe Vorgang: Ein Server berechnet den HMAC über die ersten beiden Abschnitte neu und vergleicht. Da HMAC symmetrisch ist, kann jeder, der ein Token prüfen kann, auch eines ausstellen.

When to use it

  • Ein Testtoken mit bestimmten Claims erzeugen, um einen Autorisierungspfad durchzuspielen.
  • Ein von einem Identity Provider ausgestelltes Token nachbilden, um einzugrenzen, ob ein Fehler bei der Ausstellung oder bei der Prüfung liegt.
  • Prüfen, ob Ihr Verifikationscode ein abgelaufenes exp, ein falsches aud oder ein in der Zukunft liegendes nbf tatsächlich ablehnt.
  • Ein Fixture-Token für einen Integrationstest erzeugen, bei dem das Signaturgeheimnis ein bekannter Testwert ist.
  • Genau sehen, welche Bytes signiert werden, wenn eine selbst geschriebene Signaturimplementierung von einer Bibliothek abweicht.

Watch out for

  • Ein Token ist nur so vertrauenswürdig wie sein Secret. Fügen Sie kein produktives Signaturgeheimnis in eine Webseite ein – betrachten Sie ein Secret, das in einem Browser war, als verbrannt, und rotieren Sie es.
  • Die Sicherheit von HS256 wird durch den Schlüssel begrenzt, nicht durch den Algorithmus. Ein kurzes oder aus dem Wörterbuch stammendes Secret wird offline aus einem einzigen mitgeschnittenen Token geknackt, weil das Token selbst einem Angreifer alles gibt, was er zum Durchprobieren braucht. Nehmen Sie mindestens 32 zufällige Bytes.
  • exp, iat und nbf sind Sekunden seit der Epoche. Ein Millisekundenwert in exp erzeugt ein Token, das faktisch nie abläuft, und konforme Verifizierer akzeptieren es ohne Beanstandung.
  • Signieren ist keine Verschlüsselung. Jeder Claim in der Payload ist für jeden lesbar, der das Token besitzt; ein signiertes JWT schützt Claims vor Veränderung, niemals vor dem Gelesenwerden.

Not the right tool for: Tokens auszustellen, die Ihr Produktivsystem akzeptiert. Signieren Sie diese innerhalb Ihres Dienstes und bevorzugen Sie ein asymmetrisches Verfahren wie RS256 oder EdDSA, damit Prüfende nur einen öffentlichen Schlüssel halten und keine eigenen Tokens fälschen können.

Frequently Asked Questions

Wie erzeuge ich ein JWT?

Wählen Sie einen Algorithmus, bearbeiten Sie das Payload-JSON, ergänzen Sie Claims wie iss, sub, aud und eine Ablaufzeit, geben Sie dann Ihr Signaturgeheimnis ein und klicken Sie auf JWT signieren. Header, Payload und HMAC-Signatur werden per base64url ohne Padding kodiert und mit Punkten verbunden.

Ist es unbedenklich, mein JWT-Secret hier einzugeben?

Das Secret wird von crypto.subtle.sign innerhalb Ihres Browser-Tabs verwendet. Es wird nie an einen Server gesendet, nie protokolliert und nie gespeichert. Gehen Sie dennoch sorgsam mit einem produktiven Signaturgeheimnis um – erzeugen Sie zum Testen ein Wegwerf-Secret, statt das aktive einzufügen.

Warum werden RS256 und ES256 nicht angeboten?

Diese Verfahren signieren mit einem privaten Schlüssel, und einen produktiven privaten Schlüssel in eine Webseite einzufügen ist eine Gewohnheit, die man besser nicht lehrt. Hier werden nur HMAC-Verfahren angeboten. Der alg-Wert "none" fehlt ebenso – er ist der klassische Bypass-Angriff auf JWT, kein Funktionsmerkmal.

How to Use JWT Generator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.