JWT dekodieren (Inhalt, Ablaufzeit & Signatur prüfen)

JWT einfügen und Header und Payload lesen – die Ablaufzeit erscheint als Datum. Mit Schlüssel wird auch die Signatur geprüft.

JWT

0 Zeichen · 0 Zeilen

Alles wird auf diesem Gerät verarbeitet. Was du eingibst, wird nirgendwohin gesendet.

Ein JWT kann so viel wert sein wie ein Login-Schlüssel. Füge es nicht auf anderen Seiten ein, denen du nicht vertraust.

Dekodierter Inhalt

Hier erscheint das Ergebnis

Hilfreich? Wir freuen uns, wenn du es teilst

Funktioniert etwas nicht, oder hast du eine Idee zur Verbesserung?

So funktioniert’s

  1. 1. JWT einfügen

    Tippe über dem oberen Feld auf „Einfügen“, um das kopierte JWT einzufügen. „Bearer“ davor oder Anführungszeichen drumherum dürfen stehen bleiben. Zum Ausprobieren tippe auf „Beispiel“.

  2. 2. Inhalt ansehen

    Unten unter „Dekodierter Inhalt“ erscheint ein Hinweis wie „Gültig“ oder „Abgelaufen“. Darunter stehen Ablauf- und Ausstellungszeit in der Zeit dieses Geräts, zusammen mit „in 2 Jahren“ oder „vor 3 Stunden“. Danach folgt das JSON von Header und Payload. Tippe auf „Payload kopieren“, um das formatierte JSON zu kopieren.

  3. 3. Signatur prüfen

    Gib ganz unten unter „Signatur prüfen“ bei HS256 & Co. den geheimen Schlüssel ein, bei RS256, ES256 & Co. den öffentlichen Schlüssel. Sofort erscheint „Die Signatur ist gültig“ oder „Die Signatur passt nicht“. Der Schlüssel des Beispiel-Tokens ist papatto-sample-secret.

Praktisch für

  • Herausfinden, warum der Login plötzlich abbricht

    Füge das Token ein, und du siehst Ablaufzeit (exp) und Ausstellungszeit (iat) in der Zeit dieses Geräts, dazu etwa „vor 5 Minuten“. Ob es abgelaufen ist, zeigt der Hinweis sofort – so fallen eine falsch gehende Uhr oder zu kurze Laufzeiten schnell auf.

    Webentwickler und Support-Teams

  • Nachsehen, was in einem Token steckt

    Nutzer (sub), Aussteller (iss), Empfänger (aud) und eigene Claims wie Rollen liest du als formatiertes JSON. Auch Text aus den Entwicklertools mit „Bearer“ davor kannst du direkt einfügen.

    Alle, die APIs bauen oder testen

  • Prüfen, ob der Signaturschlüssel stimmt

    Gib einen HS256-Schlüssel oder einen öffentlichen RS256- oder ES256-Schlüssel (PEM oder JWK) ein, und du siehst sofort, ob die Signatur mit diesem Schlüssel erstellt wurde. Hilfreich, wenn die Anmeldung wegen falsch eingestellter Schlüssel scheitert.

    Entwickler rund um die Authentifizierung

  • Echte Tokens nicht aus der Hand geben

    Lesen und Prüfen passieren komplett im Browser dieses Geräts. Tokens und Schlüssel werden nie an einen Server gesendet, deine Zugangsdaten landen also nicht auf fremden Servern.

    Alle, die auf Sicherheit achten

Gut zu wissen

  • Der Inhalt eines JWT ist nicht verschlüsselt, jeder kann ihn lesen. Pack keine Passwörter oder anderes hinein, das niemand sehen soll.
  • Bei einem verschlüsselten JWT (JWE) lässt sich der Inhalt nicht lesen, nur der Header.
  • Öffentliche Schlüssel werden nicht automatisch geladen (etwa von einer JWKS-URL). Füge den Schlüssel selbst ein – diese Seite verbindet sich mit nichts außerhalb.

Über JWT

Ein JWT (JSON Web Token) ist eine Zeichenkette, die Angaben zu einem angemeldeten Nutzer und seinen Rechten in 3 Teilen darstellt: „Header.Payload.Signatur“. Header und Payload sind nur JSON in der URL-sicheren Form von {tool:base64}, jeder kann sie also zurückverwandeln und lesen. Vor Manipulation schützt allein die Signatur am Ende.

Dieses Tool zeigt exp (Ablaufzeit), nbf (gültig ab) und iat (Ausstellungszeit) der Payload als Datum in der Zeitzone dieses Geräts, dazu Angaben wie „in 3 Stunden“, und weist mit einem Hinweis darauf hin, wenn das Token abgelaufen ist. Reine Zahlen-Zeitstempel kannst du auch mit {tool:unix-time} umrechnen. Gibst du einen Schlüssel ein, prüft es außerdem, ob Signaturen mit HS256, RS256, PS256, ES256, EdDSA usw. gültig sind – nur im Browser.

Die 3 Teile eines JWT
InhaltLesbar?
HeaderSignaturverfahren (alg), Typ (typ), Schlüssel-ID (kid)Für jeden lesbar
PayloadNutzer (sub), Ablaufzeit (exp), Claims wie RollenFür jeden lesbar
SignaturAus Header und Payload mit einem Schlüssel berechneter WertOhne Schlüssel nicht prüfbar

Häufige Fragen

Antworten auf Fragen, die oft vor der ersten Nutzung auftauchen.

Wird das eingefügte JWT irgendwohin gesendet?

Nein. Lesen und Prüfen der Signatur passieren nur im Browser deines Geräts, weder JWT noch Schlüssel werden an einen Server gesendet. Ein JWT kann so viel wert sein wie ein Login-Schlüssel – füge es daher nicht auf anderen Seiten ein, bei denen du nicht weißt, was sie damit machen.

Wie lese ich die Ablaufzeit (exp)?

Der Hinweis über „Dekodierter Inhalt“ zeigt „Gültig“, „Abgelaufen“, „Noch nicht gültig“ oder „Ohne Ablauf“. Die Liste darunter zeigt das Ablaufdatum in der Zeitzone dieses Geräts, dazu die Zeit ab jetzt, etwa „in 3 Stunden“ oder „vor 2 Tagen“.

Kann ich die Signatur prüfen?

Ja. Gib bei HS256, HS384 oder HS512 den geheimen Schlüssel (als Text oder Base64) ein, bei RS256, PS256, ES256, EdDSA usw. den öffentlichen Schlüssel. Sofort erscheint „Die Signatur ist gültig“ oder „Die Signatur passt nicht“.

Welche Formen von öffentlichen Schlüsseln gehen?

PEM, das mit „-----BEGIN PUBLIC KEY-----“ beginnt, „-----BEGIN RSA PUBLIC KEY-----“, Zertifikate (-----BEGIN CERTIFICATE-----), JWK und JWK Set ({"keys": […]}). Bei einem JWK Set wird der Schlüssel mit derselben kid wie im Header gewählt.

Geht es auch mit „Bearer“ davor?

Ja. Eine Zeile mit „Authorization: Bearer“ sowie Leerzeichen, Zeilenumbrüche oder Anführungszeichen drumherum werden vor dem Lesen automatisch entfernt.

Es erscheint „JWT ohne Signatur (alg: none)“

Das Token hat keine Signatur, jeder kann den Inhalt ändern. Wenn es nicht zum Testen gedacht ist, prüfe die Einstellungen deines Servers. Server, die JWTs für den Login nutzen, dürfen kein JWT mit alg none annehmen.

Es erscheint „Verschlüsseltes JWT (JWE)“

Ein JWT, das durch „.“ in 5 Teile getrennt ist, ist ein JWE mit verschlüsseltem Inhalt. Lesen lässt es sich nur mit dem privaten Schlüssel des Empfängers, daher zeigt dieses Tool nur den Header (Verschlüsselungsverfahren usw.).

Es erscheint „Das ist kein gültiges JWT“

Entweder fehlt ein Teil, weil beim Kopieren etwas verloren ging, oder es stehen Zeichen darin, die in einem JWT nicht erlaubt sind. Das Tool zeigt, welcher Teil nicht lesbar ist, und markiert die Stelle im Eingabefeld orange – sieh dort nach.

Ist der Inhalt eines JWT verschlüsselt?

Nein. Header und Payload werden nur nach einer festen Tabelle in Zeichen umgesetzt (base64url), jeder kann sie lesen. Pack keine Passwörter oder persönlichen Daten hinein.

Ist es kostenlos?

Ja, es ist kostenlos. Ohne Anmeldung und ohne Werbung.