header.payload.signature
JWT Decoder
Ein JSON Web Token (JWT) besteht aus 3 Base64url-Teilen, getrennt durch Punkte: Header, Payload und Signatur. Füge ein Token ein, um Claims und Zeiten zu lesen; es wird hier dekodiert, nicht geprüft.
- iat 1700000000 = 2023-11-14 22:13:20 UTC
- exp 1700003600 = 2023-11-14 23:13:20 UTC
- HS256 = 32 B
Das Token bleibt in diesem Tab und wird nirgendwohin gesendet. Ein dekodiertes Token ist kein vertrauenswürdiges Token: Die Signatur wird hier nie geprüft.
Scanned by NortonTM Safe Web
Auf einen Blick
- Preis
- Ohne Kosten
- Konto
- Nicht nötig
- Standards
- RFC 7519 (JWT), RFC 7515 (JWS), RFC 7516 (JWE)
- Signatur
- Nicht geprüft – das Token wird nur dekodiert
- Zeiten
- exp, nbf und iat in UTC angezeigt und mit deiner Uhr verglichen
- Upload
- Keiner – das Token bleibt in deinem Browser-Tab
Ein Beispiel-Token und gängige Algorithmen
Das Beispiel-Token dieser Seite ist mit HMAC-SHA-256 über einen Wegwerfschlüssel signiert. Die Seite hat es dekodiert, um die erste Tabelle zu erzeugen.
| Claim | Wert | Zeit (UTC) |
|---|---|---|
| iss | auth.example.com | — |
| sub | user-42 | — |
| aud | api | — |
| iat | 1700000000 | 2023-11-14 22:13:20 UTC |
| exp | 1700003600 | 2023-11-14 23:13:20 UTC |
| alg | Familie | Hash | Signaturgröße |
|---|---|---|---|
| HS256 | HMAC | SHA-256 | 32 B |
| HS512 | HMAC | SHA-512 | 64 B |
| RS256 | RSASSA-PKCS1-v1_5 | SHA-256 | 256 B (2048-bit key) |
| ES256 | ECDSA P-256 | SHA-256 | 64 B |
| ES512 | ECDSA P-521 | SHA-512 | 132 B |
| EdDSA | EdDSA | — | 64 B (Ed25519) |
So dekodierst du ein JWT
Token einfügen
Füge das ganze Token ein, mit oder ohne vorangestelltes Bearer. Es hat 3 durch Punkte getrennte Teile, oder 5, wenn es ein verschlüsseltes JWE ist.
Teile lesen
Header und Payload erscheinen als formatiertes JSON, und jeder Claim steht in einer Tabelle. Die Zeiten exp, nbf und iat werden in UTC angezeigt.
Zeit prüfen
Die Seite vergleicht exp und nbf mit der Uhr deines Geräts und sagt, ob das Token abgelaufen ist. Ob das Token echt ist, sagt sie nicht.
Wie ein JWT aufgebaut ist
Ein JWT (RFC 7519) wird als header.payload.signature geschrieben. Header und Payload sind JSON-Objekte, jeweils als Base64url ohne Padding kodiert (RFC 4648, Abschnitt 5), und die Signatur besteht aus rohen Bytes in derselben Kodierung. Das Dekodieren ändert nur die Kodierung, daher kann jeder, der ein Token hat, die Payload lesen: Lege keine Geheimnisse darin ab. Der Header nennt den Signaturalgorithmus in alg, etwa HS256 (HMAC mit SHA-256, 32 Byte Signatur) oder RS256 (RSA mit SHA-256, 256 Byte bei einem 2048-Bit-Schlüssel).
Diese Seite dekodiert ein Token und mehr nicht. Sie prüft die Signatur nicht, weil dafür der Schlüssel nötig ist, und kann nicht sagen, ob ein Token echt, widerrufen oder von einem Server akzeptiert ist. Sie vergleicht die Claims exp, nbf und iat, die Sekunden seit 1970-01-01 UTC zählen, mit der Uhr deines Geräts und gibt sie als UTC-Datum mit Uhrzeit aus. Ein Token mit 5 Teilen ist ein JWE: Sein Inhalt ist verschlüsselt, daher lässt sich nur der Header anzeigen.
Fragen zu JWT
Wie dekodiere ich ein JWT?
Füge das Token in das Feld ein. Die Seite teilt es an den Punkten, wandelt die ersten zwei Teile aus Base64url um und zeigt sie als JSON. Ein vorangestelltes Bearer wird ignoriert. Beim Beispiel-Token ist der Header {"alg":"HS256","typ":"JWT"}.
Prüft diese Seite die Signatur?
Nein. Zum Prüfen braucht man das Geheimnis oder den öffentlichen Schlüssel, und diese Seite fragt nie danach. Ein Token, das sich hier dekodieren lässt, kann trotzdem gefälscht, verändert oder widerrufen sein. Prüfe die Signatur in deinem eigenen Servercode mit einer gepflegten JWT-Bibliothek.
Was bedeuten exp, iat und nbf?
Es sind Zeiten in Sekunden seit 1970-01-01 UTC (RFC 7519). exp ist der Ablaufzeitpunkt des Tokens, nbf die Zeit, vor der es nicht akzeptiert werden darf, und iat der Ausstellungszeitpunkt. Im Beispiel-Token ist iat 1700000000 gleich 2023-11-14 22:13:20 UTC und exp 1700003600 eine Stunde später.
Ist es sicher, hier ein echtes Token einzufügen?
Das Token bleibt in deinem Browser-Tab und wird nirgendwohin gesendet. Trotzdem ist ein aktives Token eine Zugangsberechtigung: Wer es hat, kann es bis zum Ablauf nutzen. Füge Tokens ein, die dir gehören, und nimm nach Möglichkeit abgelaufene oder Test-Tokens.
Warum hat mein Token 5 Teile?
Ein Token mit 5 Teilen ist ein JWE, ein verschlüsseltes JSON Web Token (RFC 7516). Seine Payload ist für den Empfänger verschlüsselt, daher zeigt diese Seite nur den Header und die Größen der Teile. Der Inhalt lässt sich hier nicht lesen.
Was bedeutet „not Base64url“ oder „not JSON“?
Jeder der ersten zwei Teile muss Base64url-Text sein, der sich zu einem JSON-Objekt dekodieren lässt. Die Seite nennt den fehlerhaften Teil und den Grund: ein Zeichen außerhalb des Alphabets, Bytes, die kein UTF-8 sind, oder JSON mit einem Fehler in einer bestimmten Zeile und Spalte. Meist ist ein abgeschnittenes Token oder überzählige Zeichen die Ursache.