Wie ein JWT aufgebaut ist
Ein JSON Web Token (RFC 7519) besteht in seiner üblichen signierten Form (JWS, RFC 7515) aus drei base64url-Segmenten, die durch Punkte getrennt sind: header.payload.signature. Der Header nennt den Signaturalgorithmus (alg, zum Beispiel HS256 oder RS256) und den Tokentyp. Die Payload enthält die Claims: um wen es geht (sub), wer das Token ausgestellt hat (iss), für wen es bestimmt ist (aud) und wann es abläuft (exp).
Beispiel
Das Token, das beim Laden dieser Seite angezeigt wird, hat den Header {"alg":"HS256","typ":"JWT"} und die Payload {"sub":"user-42","name":"Jane Doe","iat":1767225600,"exp":1767229200}. iat und exp sind NumericDates, also Sekunden seit 1970-01-01 00:00 UTC: Das Token wurde am 2026-01-01 um 00:00 UTC ausgestellt und ist eine Stunde später abgelaufen. Seine Signatur ist ein Platzhalter. Der Decoder liest das Token trotzdem, denn beim Dekodieren spielt die Signatur keine Rolle.
Dekodieren ist nicht Verifizieren
Header und Payload sind nur base64url-kodiert, nicht verschlüsselt. Wer ein Token besitzt, kann sie lesen – in eine JWT-Payload gehören daher niemals Geheimnisse. Ob ein Token echt ist, entscheidet seine Signatur, die nur der Besitzer des Schlüssels prüfen kann – bei RS256 und ES256 jeder mit dem öffentlichen Schlüssel. Eine Anwendung muss Signatur, erwarteten Algorithmus und den Claim exp mit einer JWT-Bibliothek prüfen, bevor sie einem Claim vertraut.
Fünf Segmente?
Ein Token mit fünf Segmenten ist ein verschlüsseltes JWE. Seine Payload lässt sich ohne den Entschlüsselungsschlüssel nicht lesen, deshalb dekodiert dieses Tool es nicht.
Um ein einzelnes Segment von Hand zu dekodieren, nutze den Base64-Decoder; er akzeptiert das URL-sichere Alphabet ohne Padding.