Zum Inhalt springen

JWT-DecoderBeta

Füge ein JWT (JSON Web Token) ein und sieh Header und Payload. Die Signatur wird nie geprüft, und alles läuft in deinem Browser.

Signatur NICHT geprüft

Dieses Tool liest nur den Inhalt und prüft die Signatur nie. Füge hier niemals ein Produktions-Token oder ein Geheimnis ein, dem du nicht vertraust.

Füge ein JWT ein, um Header und Payload entschlüsselt zu sehen.

So verwendest du das Tool

Füge einen JWT-String in das Eingabefeld ein, und Header sowie Payload werden als übersichtlich formatiertes JSON angezeigt. Zusätzlich siehst du den Signaturalgorithmus, das genaue Datum und die Uhrzeit jedes registrierten Claims (exp, iat, nbf) sowie ob das Token abgelaufen oder noch nicht gültig ist. Über die Kopieren-Schaltflächen kannst du Header oder Payload übernehmen. Nichts, was du hier einfügst, wird irgendwohin gesendet — alles wird in diesem Browser verarbeitet.

Die drei Teile eines JWT

Ein JWT besteht aus drei durch Punkte getrennten Teilen: header.payload.signature. Der Header enthält Metadaten wie den Signaturalgorithmus (alg) und den Tokentyp (typ), die Payload enthält die eigentlichen Claims — etwa eine Nutzer-ID, Berechtigungen oder einen Ablaufzeitpunkt. Beide Teile sind lediglich Base64URL-codiertes JSON und keine Verschlüsselung, sodass sie jeder dekodieren und lesen kann. Nur der letzte Teil, die Signature, ist mit einem geheimen (oder privaten) Schlüssel signiert und bestätigt, dass Header und Payload seit der Ausstellung nicht verändert wurden.

Dekodieren ist nicht dasselbe wie Verifizieren

Dieses Tool liest Header und Payload nur aus und zeigt sie an — die Signatur wird nie geprüft. Für eine Signaturprüfung braucht man den geheimen Schlüssel (bei HMAC-basierten Algorithmen) oder den öffentlichen Schlüssel (bei RSA-/ECDSA-basierten Algorithmen) des Ausstellers, und dieses Tool nimmt weder einen solchen Schlüssel entgegen noch kommuniziert es über den Browser hinaus. Dass der Inhalt korrekt angezeigt wird, bedeutet also nicht, dass das Token echt oder noch gültig ist. Füge niemals ein Produktions-Token oder einen geheimen Schlüssel, dem du nicht voll vertraust, in dieses oder irgendein anderes Online-Tool ein.

Registrierte Claims (exp, iat, nbf)

Der JWT-Standard (RFC 7519) definiert einige feste Claim-Namen, darunter exp (Ablaufzeitpunkt), iat (Ausstellungszeitpunkt) und nbf (gültig ab). Alle drei werden als NumericDate gespeichert — die Anzahl der Sekunden seit dem 1. Januar 1970. Dieses Tool wandelt diese Zahl in ein Datum und eine Uhrzeit in deiner Locale um und vergleicht sie mit der aktuellen Zeit: Liegt exp in der Vergangenheit, erscheint „Abgelaufen“, liegt nbf noch in der Zukunft, erscheint „Noch nicht gültig“. Diese Anzeige dient nur zur Orientierung — die eigentliche Zugriffskontrolle muss weiterhin serverseitig geprüft werden.

Datenschutz

Das eingefügte Token und das dekodierte Ergebnis werden ausschließlich in diesem Browser berechnet und nie an einen Server gesendet. Bedenke aber, dass die Payload eines JWT von vornherein nicht verschlüsselt ist — Informationen wie eine E-Mail-Adresse, eine Rolle oder eine interne ID darin kann jeder lesen, mit oder ohne dieses Tool.

Quellen

Häufige Fragen

Wird beim Dekodieren eines JWT auch die Signatur geprüft?

Nein. Beim Dekodieren wird nur der Base64URL-codierte Header und die Payload wieder lesbar gemacht. Um zu prüfen, ob die Signatur echt ist, braucht man den geheimen Schlüssel (oder öffentlichen Schlüssel) des Ausstellers — dieses Tool hat keine Prüffunktion und nimmt niemals einen geheimen Schlüssel entgegen.

Ich sehe im Header ein Token mit alg auf "none" — ist das gefährlich?

Ja, sehr sogar. Steht alg auf none, kann jeder ein Token mit beliebigem Inhalt und ganz ohne Signatur erzeugen. Vertraut ein Server so einem Token blind, lässt sich die Authentifizierung komplett umgehen. Prüfe, ob dein Server den Algorithmus none ausdrücklich ablehnt.

Blockiert dieses Tool ein abgelaufenes Token (exp in der Vergangenheit)?

Nein. Dieses Tool zeigt nur an, ob ein Token abgelaufen ist — es blockiert oder entwertet das Token selbst nicht. Das Ablehnen abgelaufener Token muss der Server übernehmen, der das Token bei seiner eigenen Prüfung verwendet.

Darf ich ein dekodiertes Token mit jemand anderem teilen?

Das wird nicht empfohlen. Die Payload eines JWT ist nicht verschlüsselt, sondern nur Base64URL-codiert — jeder kann sie auch ohne dieses Tool lesen. Enthält sie persönliche Daten wie eine E-Mail-Adresse oder Nutzer-ID oder interne Berechtigungsinformationen, gibst du beim Teilen des Tokens auch diese Informationen weiter.