JWT-Decodierer

Fügen Sie ein JSON Web Token ein und lesen Sie Header und Payload als formatiertes JSON — mit Ablaufzeiten in lesbaren Daten. Vollständig offline.

1.159 Aufrufe

Wie es funktioniert

Ein JSON Web Token ist eine kompakte Zeichenkette aus drei Base64URL-kodierten Teilen, die durch Punkte verbunden sind: header.payload.signature. Base64URL ist eine URL-sichere Variante von Base64, die +// durch -/_ ersetzt und die abschließende =-Auffüllung weglässt, damit das Ergebnis ohne Escaping in einer URL oder einem HTTP-Header stehen kann. Der Header ist ein kleines JSON-Objekt, das den Signaturalgorithmus und den Tokentyp benennt — typischerweise {"alg":"HS256","typ":"JWT"}. Die Payload ist ein JSON-Objekt aus "Claims": beliebigen Schlüssel/Wert-Paaren, die beschreiben, wen das Token repräsentiert und wozu es berechtigt, dazu einige registrierte Zeit-Claims — iat (ausgestellt am), nbf (nicht gültig vor) und exp (Ablauf), alle als Unix-Zeitstempel gespeichert. Die Signatur wird über die ersten beiden Teile mit dem im Header genannten Algorithmus und einem Schlüssel berechnet, den nur der ausstellende Server besitzt.

Fügen Sie hier ein Token ein, und das Tool teilt es an seinen beiden Punkten, dekodiert Header und Payload per Base64URL und formatiert beide als eingerücktes JSON. Etwaige exp/iat/nbf-Werte werden zusätzlich in ein lesbares Datum umgerechnet, mit einem Abzeichen, das auf einen Blick zeigt, ob das Token aktuell abgelaufen ist.

JWTs sind das Rückgrat der meisten modernen Authentifizierungssysteme: OAuth-2.0-Access-Tokens, OpenID-Connect-ID-Tokens und eigene Session-Systeme nutzen alle dieses Format, weil es einem Server erlaubt, ein in sich geschlossenes Credential auszustellen, das andere Dienste ohne Datenbankabfrage lesen können — solange sie die Signatur prüfen können. Verbreitete Algorithmen sind HS256 (HMAC mit gemeinsamem Geheimnis) und RS256/ES256 (asymmetrische RSA- oder Elliptische-Kurven-Signaturen, bei denen der Aussteller einen privaten Schlüssel behält und jeder mit dem passenden öffentlichen Schlüssel prüfen kann).

Was Sie wissen sollten

Dekodieren ist nicht verifizieren. Header und Payload sind nur kodiert, nicht verschlüsselt — jeder kann sie ohne Schlüssel lesen, und jeder kann ebenso ein Token mit beliebigen Claims fälschen. Was ein JWT vertrauenswürdig macht, ist ausschließlich seine Signatur, und deren Prüfung benötigt das Geheimnis (HMAC-Algorithmen) oder den öffentlichen Schlüssel des Ausstellers (RSA/ECDSA-Algorithmen). Diese Prüfung gehört auf einen Server, der den Schlüssel besitzt; sie kann nicht sicher in einem Browser-Tool erfolgen, da das Offenlegen eines Geheimnisses dort dessen Zweck zunichtemachen würde. Betrachten Sie diesen Decoder ausschließlich als Debugging-Hilfe — nie als Beweis dafür, dass ein Token echt oder noch gültig ist.

Gehen Sie auch mit dem, was Sie einfügen, sorgfältig um: Ein JWT trägt Sitzungs- oder Berechtigungsdaten, behandeln Sie es also wie ein Passwort und vermeiden Sie es, echte Produktions-Tokens auf einem gemeinsam genutzten Rechner in irgendein Tool einzufügen. Tokens mit fünf durch Punkte getrennten Teilen sind JWE (verschlüsselt), nicht JWS (signiert) — dieser Decoder verarbeitet die weitaus gebräuchlichere signierte Variante. Und vertrauen Sie in eigenem Verifikationscode nie blind dem alg-Feld — ein bekannter Angriff verleitet naive Implementierungen dazu, alg: none zu akzeptieren oder RS256 gegen HS256 auszutauschen, weshalb die Signaturprüfung in geprüfte Bibliotheken gehört und nicht in selbst geschriebenen Code.

Häufig gestellte Fragen

Bestätigt das Dekodieren, dass das Token gültig ist?

Nein — Dekodieren liest nur den Inhalt. Die Signaturprüfung erfordert den Signierschlüssel oder den öffentlichen Schlüssel und gehört auf Ihren Server. Jeder kann ein Token mit beliebiger Payload erstellen; nur die Signatur beweist die Echtheit.

Ist es sicher, ein echtes Produktions-Token hier einzufügen?

Das Tool überträgt das Token nie — das Dekodieren erfolgt lokal. Behandeln Sie Produktions-Tokens dennoch wie Passwörter: Bevorzugen Sie abgelaufene oder Test-Tokens beim Debuggen in gemeinsam genutzten Umgebungen.

Warum lässt sich mein Token nicht dekodieren?

Prüfen Sie, ob Sie alle drei durch Punkte getrennten Teile kopiert haben und keine Zeilenumbrüche eingefügt wurden. Verschlüsselte Tokens (JWE, fünf Teile) können ohne Schlüssel nicht gelesen werden — dieses Tool verarbeitet signierte JWS-Tokens, die verbreitete Art.

Was ist der Unterschied zwischen einem JWS- und einem JWE-Token?

JWS (JSON Web Signature) ist das signierte Format, das dieses Tool dekodiert — drei Teile, lesbar, aber manipulationssicher. JWE (JSON Web Encryption) hat fünf Teile, und die Payload selbst ist verschlüsselt, sodass sie ohne den Entschlüsselungsschlüssel überhaupt nicht gelesen werden kann; wenn Ihr Token hier nicht dekodiert wird und statt zwei Punkten vier hat, handelt es sich höchstwahrscheinlich um ein JWE.

Was bedeuten die Claims exp, iat und nbf?

Alle drei sind Unix-Zeitstempel (Sekunden seit dem 01.01.1970). iat verzeichnet, wann das Token ausgestellt wurde, nbf markiert den frühesten Moment seiner Gültigkeit, und exp markiert den Moment, ab dem es ungültig wird. Ein korrekt arbeitender Server lehnt jedes Token ab, bei dem die aktuelle Zeit außerhalb des nbf-exp-Fensters liegt.

Kommentare

Noch keine Kommentare — schreiben Sie den ersten!

Ähnliche Tools