JWT-Decoder / -Verifizierer

Dekodiere Header und Payload eines JWT, verifiziere seine Signatur und sieh, wann es abläuft.

Token

Was ein JSON Web Token ist

Ein JSON Web Token (JWT) ist eine kompakte, in sich geschlossene Möglichkeit, eine Menge von Claims zu transportieren – Aussagen wie „das ist Nutzer 42“ oder „dieses Token läuft mittags ab“ – in einer überprüfbaren Form. JWTs sind in der modernen Authentifizierung allgegenwärtig: Nach dem Login übergibt ein Server deinem Browser oft ein signiertes JWT, und jede spätere Anfrage enthält es, damit der Server weiß, wer du bist, ohne etwas nachzuschlagen. Da das Token seine eigenen Claims und Signatur trägt, wird es als „zustandslos“ (stateless) bezeichnet.

Ein JWT besteht aus drei Base64URL-kodierten Teilen, die durch Punkte verbunden sind: header.payload.signature. Dieses Werkzeug zerlegt und dekodiert diese Teile für dich, zeigt die Claims in lesbarer Form und verifiziert – wenn du den Signierschlüssel angibst –, dass die Signatur echt ist.

Die drei Teile

  • Header: beschreibt, wie das Token signiert ist, vor allem den Algorithmus („alg“, z. B. HS256 oder RS256) und den Token-Typ.
  • Payload: die Claims selbst – ein JSON-Objekt mit Feldern wie sub (Subjekt/Nutzer), exp (Ablauf), iat (ausgestellt am) und beliebigen benutzerdefinierten Daten, die der Aussteller hinzugefügt hat.
  • Signature: ein kryptografischer Wert, der über Header und Payload mit einem Secret oder privaten Schlüssel berechnet wird. Sie macht ein JWT vertrauenswürdig: Ändere ein einziges Zeichen im Payload, und die Signatur passt nicht mehr.

Entscheidend: Header und Payload sind nur kodiert, nicht verschlüsselt. Jeder, der das Token hat, kann sie lesen. Die Signatur verbirgt den Inhalt nicht – sie beweist, dass er nicht manipuliert wurde. Speichere niemals Passwörter oder Secrets im Payload eines JWT.

Die Signatur verifizieren

Das Dekodieren eines JWT sagt dir, was es behauptet; das Verifizieren sagt dir, ob du diesen Behauptungen glauben solltest. Die Verifizierung berechnet die Signatur aus Header und Payload mit einem Schlüssel neu und prüft, ob sie übereinstimmt. Es gibt zwei Algorithmus-Familien, die unterschiedliche Schlüsselarten verwenden:

  • HMAC (HS256, HS384, HS512): ein symmetrisches Verfahren. Dasselbe geteilte Secret signiert und verifiziert. Gib dieses Secret an, um zu verifizieren.
  • RSA und ECDSA (RS256, PS256, ES256 und verwandte): asymmetrische Verfahren. Ein privater Schlüssel signiert und ein öffentlicher Schlüssel verifiziert. Gib den öffentlichen Schlüssel im PEM-Format an, um zu verifizieren – du brauchst den privaten Schlüssel nie, nur um ein Token zu prüfen.

Dieses Werkzeug erkennt den Algorithmus automatisch aus dem Header und verifiziert vollständig in deinem Browser mit der Web Crypto API, sodass weder das Token noch der Schlüssel je hochgeladen werden.

Die Standard-Claims lesen

Eine Handvoll Claim-Namen sind standardisiert (sie heißen „registered claims“). Das Werkzeug beschriftet sie und wandelt die zeitbasierten von rohen Unix-Zeitstempeln in deine lokale Zeit um, mit einem verständlichen Status, damit du auf einen Blick siehst, ob ein Token aktiv, abgelaufen oder noch nicht gültig ist:

  • exp — Ablaufzeit: nach diesem Moment sollte das Token abgelehnt werden.
  • nbf — not before: das Token ist bis zu diesem Moment ungültig.
  • iat — issued at: wann das Token erstellt wurde.
  • iss — issuer: wer das Token erstellt hat.
  • sub — subject: wen oder was das Token betrifft (oft eine Nutzer-ID).
  • aud — audience: für wen das Token bestimmt ist.
  • jti — eine eindeutige Kennung für das Token.

Häufig gestellte Fragen

Wird mein Token oder mein Schlüssel irgendwohin gesendet?
Nein. Dekodierung und Signaturprüfung laufen vollständig in deinem Browser mit der Web Crypto API. Token, Secret und öffentlicher Schlüssel verlassen niemals dein Gerät, daher ist es sicher, Produktions-Tokens zu inspizieren.
Welche Signaturalgorithmen kann es verifizieren?
HMAC (HS256, HS384, HS512) mit einem geteilten Secret sowie RSA (RS- und PS-Varianten) und ECDSA (ES256, ES384) mit einem öffentlichen Schlüssel im PEM-Format. Der Algorithmus wird automatisch aus dem Header des Tokens erkannt.
Ist ein JWT verschlüsselt?
Nein. Ein standardmäßig signiertes JWT ist nur kodiert, nicht verschlüsselt – jeder kann seinen Header und Payload lesen. Die Signatur beweist, dass das Token nicht verändert wurde, verbirgt aber den Inhalt nicht, speichere also nie Secrets im Payload.
Brauche ich den privaten Schlüssel, um ein RS256-Token zu verifizieren?
Nein. Asymmetrische Algorithmen verifizieren mit dem öffentlichen Schlüssel. Den privaten Schlüssel brauchst du nur, um ein Token zu erstellen (zu signieren), nie um es zu prüfen.
Warum wird mein Token als abgelaufen angezeigt?
Der exp-Claim liegt in der Vergangenheit relativ zur Uhr deines Geräts. Das Werkzeug wandelt exp, nbf und iat in deine lokale Zeit um und zeigt einen Status, damit du das Gültigkeitsfenster des Tokens auf einen Blick bestätigen kannst.
Was ist der Unterschied zwischen HS256 und RS256?
HS256 ist symmetrisch: ein einziges geteiltes Secret signiert und verifiziert, am einfachsten, wenn dieselbe Partei beides tut. RS256 ist asymmetrisch: ein privater Schlüssel signiert und ein öffentlicher verifiziert, sodass viele Parteien Tokens verifizieren können, ohne sie fälschen zu können.
Kann ich den Payload bearbeiten und das Token neu signieren?
Dieses Werkzeug ist schreibgeschützt: Es dekodiert und verifiziert, erstellt oder signiert aber keine Tokens neu. Das hält es fokussiert und vermeidet den Umgang mit privaten Signierschlüsseln.