CodeKitHub
Deutsch
Kodier-Tools

JWT-Decoder

Fügen Sie ein beliebiges JWT (JSON Web Token) ein und sehen Sie sofort, wie dessen Header und Payload dekodiert und formatiert werden – einschließlich der Angabe, ob es abgelaufen ist. Der gesamte Vorgang findet in Ihrem Browser statt: Das Token wird zu keinem Zeitpunkt an einen anderen Ort gesendet, und es wird keine Signaturprüfung durchgeführt (dieses Tool dekodiert lediglich, es überprüft nicht, ob das Token echt ist).

Kopfzeile

Nutzlast

Die Entschlüsselung erfolgt vollständig in Ihrem Browser – es findet keine Signaturprüfung statt, und das Token wird zu keinem Zeitpunkt an einen anderen Ort gesendet.

Was ist dieses Tool?

Ein JWT (JSON Web Token) ist eine kompakte, URL-sichere Zeichenfolge, die dazu dient, Ansprüche zwischen zwei Parteien zu übertragen – meist als Authentifizierungstoken nach der Anmeldung. Es besteht aus drei durch Punkte getrennten Teilen: einem Header (Algorithmus und Token-Typ), einer Nutzlast (den eigentlichen Angaben – Benutzer-ID, Rollen, Ablaufdatum usw.) und einer Signatur (die vom Server verwendet wird, um zu überprüfen, ob das Token nicht manipuliert wurde).

Der Header und die Nutzdaten bestehen lediglich aus Base64URL-kodiertem JSON – sie sind nicht verschlüsselt –, sodass jeder sie ohne geheimen Schlüssel dekodieren und lesen kann. Lediglich für die Überprüfung der Signatur ist ein Geheimschlüssel erforderlich. Genau das leistet dieses Tool: Es dekodiert die lesbaren Teile und zeigt sie als formatiertes JSON an, ohne zu versuchen, die Signatur zu überprüfen.

Warum sollte man es nutzen?

  • Sofort lesbare Header- und Payload-Daten, formatiert als JSON – das manuelle Aufteilen der Zeichenfolge und die manuelle Base64-Dekodierung entfallen.
  • Automatische Ablaufprüfung: Wenn die Nutzlast einen „exp“-Claim enthält, wird dieser in ein lesbares Datum umgewandelt und als abgelaufen oder gültig gekennzeichnet.
  • Kopieren mit einem Klick – separat für Kopfzeile oder Nutzdaten.
  • 100 % clientseitig – das Token wird lokal entschlüsselt und niemals übertragen, sodass es auch bei Token aus einem Produktionssystem sicher verwendet werden kann.
  • Es wurde keine Signaturprüfung durchgeführt oder behauptet – dies ist ein Debugging-/Prüftool, kein Validator.

Anleitung

  1. Fügen Sie Ihr JWT in das Feld ein (die vollständige Zeichenfolge, einschließlich aller drei durch Punkte getrennten Teile).
  2. Der Header und die Nutzdaten werden während der Eingabe automatisch dekodiert.
  3. Überprüfen Sie die Ablaufzeile, wenn der Token einen „exp“-Claim enthält – dort werden das genaue Datum und der Status des Tokens (abgelaufen oder nicht) angezeigt.
  4. Klicken Sie unter einem der beiden Felder auf „Kopieren“, um den jeweiligen Abschnitt als JSON zu kopieren.

Beispiel

Eingabe

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQ

Ausgabe

Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}

Die Signatur (dritter Teil) wird niemals entschlüsselt oder überprüft – es handelt sich um einen undurchsichtigen Hash, der serverseitig zur Überprüfung der Authentizität verwendet wird.

Praktische Tipps

  • Fehlerbehebung bei „ungültigen Token“-Fehlern: Dekodieren Sie zunächst die Nutzlast, um den „exp“-Claim zu überprüfen – ein abgelaufenes Token ist die häufigste Ursache, was aus der Fehlermeldung allein nicht immer ersichtlich ist.
  • Überprüfen, was das Token einer Drittanbieter-API tatsächlich enthält: Viele APIs geben ein auf den ersten Blick undurchsichtiges JWT als Zugriffstoken zurück – entschlüsseln Sie es hier, um die Bereiche, die Benutzer-ID oder die Gültigkeitsdauer zu sehen, die Ihre Integration tatsächlich erhält.
  • Gehen Sie niemals davon aus, dass ein JWT verschlüsselt ist: Wenn Sie während der Entwicklung sensible Daten (E-Mail-Adressen, interne IDs) in einer entschlüsselten Nutzlast sehen, ist das ein Hinweis darauf, diese Daten auf die Serverseite zu verlagern, anstatt darauf zu vertrauen, dass der Client sie nicht ausliest.

Häufige Behauptungen, die man in einer Nutzlast findet

BehauptungBedeutung
subBetreff – in der Regel die Benutzer-ID, für die das Token steht
expAblaufzeit (Unix-Zeitstempel) – Das Token ist nach diesem Zeitpunkt ungültig.
iatAusgestellt am — zum Zeitpunkt der Erstellung des Tokens
issAussteller – welcher Dienst/Server hat das Token ausgestellt?
audZielgruppe – für welchen Dienst ist das Token vorgesehen?
Rolle / Rollen / GeltungsbereichBenutzerdefinierte Claims – dem Benutzer gewährte Berechtigungen oder Rollen (kein Bestandteil des JWT-Standards, jedoch äußerst verbreitet)

Häufig gestellte Fragen

Überprüft dieses Tool die JWT-Signatur?

Nein. Zur Überprüfung einer Signatur ist der geheime oder öffentliche Schlüssel erforderlich, mit dem das Token signiert wurde, über den jedoch nur der ausstellende Server verfügt. Dieses Tool entschlüsselt lediglich den Header und die Nutzdaten – also die für Menschen lesbaren Teile –, sodass Sie die Claims und die Gültigkeitsdauer überprüfen können, ohne einen Schlüssel zu benötigen.

Ist es sicher, hier ein echtes JWT aus der Produktion einzufügen?

Die Entschlüsselung erfolgt vollständig in Ihrem Browser über JavaScript – das Token wird zu keinem Server gesendet, auch nicht zu unserem. Behandeln Sie Token daher wie Passwörter: Fügen Sie sie nicht in Tools ein, denen Sie nicht vertrauen, und vermeiden Sie es, Screenshots von entschlüsselten Token zu teilen, die sensible Angaben enthalten.

Warum kann jeder die Nutzdaten meines JWT ohne Passwort lesen?

So ist es vorgesehen – der Header und die Nutzdaten eines JWT sind Base64URL-kodiert, nicht verschlüsselt. Die Kodierung dient nicht der Sicherheit; sie sorgt lediglich dafür, dass die JSON-Daten URL-sicher übertragen werden können. Speichern Sie niemals vertrauliche Daten (Passwörter, Kreditkartennummern) direkt in den Nutzdaten eines JWT – gehen Sie davon aus, dass jeder, der über das Token verfügt, dessen Inhalt lesen kann.

Was bedeutet die Angabe „exp“ und warum ist sie von Bedeutung?

„exp“ ist die Ablaufzeit des Tokens als Unix-Zeitstempel (Sekunden seit 1970). Server lehnen ein JWT ab, sobald diese Zeit abgelaufen ist, wodurch der Client gezwungen wird, sich erneut zu authentifizieren. Dieses Tool wandelt den Wert in ein lesbares Datum um und kennzeichnet, ob es bereits abgelaufen ist, was bei der Fehlerbehebung von Problemen wie „Warum wurde ich aus meiner Sitzung abgemeldet?“ hilfreich ist.

Mein Token weist einen JSON-Parsing-Fehler auf – warum?

Entweder ist die Zeichenfolge kein gültiges JWT (sie sollte genau aus drei durch Punkte getrennten Teilen bestehen), oder sie wurde gekürzt oder verändert – eine häufige Ursache ist ein versehentlich über mehrere Zeilen aufgeteilter Token oder fehlende Zeichen am Ende beim Kopieren.

Verwandte Tools