Skip to main content

Dekodieren Sie ein JSON Web Token und sehen Sie Header und Payload.

Alle Berechnungen erfolgen lokal in Ihrem Browser. Es werden keine Daten an einen Server gesendet.

Die Ergebnisse dienen zur Information. Überprüfen Sie sie anhand anderer Quellen.

Ein JSON Web Token lesen

Ein JWT besteht aus drei Base64url-Segmenten, durch Punkte getrennt: einem Header mit dem Signaturverfahren, einer Payload mit Claims und einer Signatur über die ersten beiden. Das Dekodieren zeigt, was ein Token behauptet — nicht, ob es stimmt.

So wird gerechnet

  • Trennt das Token an seinen zwei Punkten in Header, Payload und Signatur.
  • Dekodiert die ersten beiden Segmente aus Base64url zurück nach JSON und formatiert sie lesbar.
  • Stellt die Standard-Zeit-Claims — exp, iat, nbf — als Datum dar, da sie als Unix-Sekunden gespeichert sind.
  • Lässt die Signatur unangetastet: ihre Prüfung braucht das Geheimnis oder den öffentlichen Schlüssel des Ausstellers, den man niemals in eine Webseite einfügen sollte.
Token   = base64url(Header) . base64url(Payload) . base64url(Signatur)
Signatur = HMAC oder RSA/ECDSA über die ersten beiden Segmente
exp/iat = Sekunden seit 1970-01-01T00:00:00Z (keine Millisekunden)

Rechenbeispiel

Der Header nahezu jedes existierenden HS256-Tokens, von Hand zerlegt.

  1. Header-JSON: {"alg":"HS256","typ":"JWT"}
  2. Base64-kodieren: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
  3. beachten Sie: die abschließende =-Auffüllung entfällt — JWT lässt sie immer weg
  4. eine Payload von {"sub":"1234567890","iat":1516239022}
  5. 1516239022 Sekunden → 2018-01-18T01:30:22Z

Das dekodierte Token besagt, dass es mit HMAC-SHA256 signiert wurde, das Subjekt 1234567890 betrifft und am 18. Januar 2018 ausgestellt wurde. Ob es echt ist, beantwortet allein die Signatur.

Das Ergebnis lesen

  • Dekodieren ist kein Verifizieren. Ein Token, dessen Payload admin: true sagt, beweist nichts, solange die Signatur nicht gegen einen Schlüssel prüft, dem Sie trauen. Treffen Sie nie eine Autorisierungsentscheidung allein auf einer dekodierten Payload.
  • Fügen Sie keine Produktionstokens in Online-Dekoder ein. Dieser läuft vollständig im Browser und sendet nichts, aber das gilt nicht für jede solche Seite — und ein Bearer-Token ist ein Passwort.
  • Die Payload ist nur kodiert, nicht verschlüsselt. Wer das Token hat, liest jeden Claim darin; legen Sie also nie ein Geheimnis hinein.
  • Prüfen Sie exp gegen die aktuelle Zeit und weisen Sie Abgelaufenes zurück. Prüfen Sie auch iss und aud — eine gültige Signatur vom falschen Aussteller bleibt das falsche Token.
  • alg: none ist ein realer Wert und ein realer Angriff. Ein Prüfer, der der Algorithmusangabe im Header vertraut, lässt sich anweisen, gar nicht zu prüfen.

Häufige Fragen

Kann dieses Werkzeug sagen, ob mein Token gültig ist?
Nein, und ohne Ihren Schlüssel kann das kein Dekoder. Es zeigt, was das Token behauptet. Gültigkeit heißt: Signatur passt, Token nicht abgelaufen, Aussteller und Empfänger sind die erwarteten — Prüfungen, die mit einer Bibliothek auf Ihren Server gehören.
Ist es sicher, mein Token hier einzufügen?
Diese Seite dekodiert im Browser und überträgt nichts. Dennoch ist es die sichere Gewohnheit, Tokens aus einer Testumgebung zu nehmen. Behandeln Sie jedes Token mit echtem Zugriff wie ein Passwort.
Warum liegt mein exp-Datum im Jahr 1970?
Sie übergeben mit ziemlicher Sicherheit Millisekunden, wo die Spezifikation Sekunden verlangt. Date.now() in JavaScript liefert Millisekunden; teilen Sie durch 1000, bevor der Wert in einen Claim geht.