Über das Tool „JWT dekodieren & prüfen“
Ein JSON Web Token (JWT) ist eine kompakte Zeichenkette aus drei base64url-Teilen, die durch Punkte getrennt sind: ein Header, der den Signaturalgorithmus nennt, eine Payload mit Claims wie der Benutzer-ID und der Ablaufzeit, und eine Signatur. Die ersten beiden Teile kann jeder dekodieren – sie sind kodiert, nicht verschlüsselt –, aber nur die Signatur verrät, ob das Token wirklich von jemandem ausgestellt wurde, der den Schlüssel besitzt.
Dieses Tool dekodiert Header und Payload, wandelt die Zeitstempel exp, nbf und iat in lesbare Daten um und zeigt, ob das Token abgelaufen ist. Wenn Sie das Secret oder den öffentlichen Schlüssel des Ausstellers einfügen, prüft es außerdem die Signatur. Tokens und Schlüssel werden in Ihrem Browser verarbeitet und nie an einen Server gesendet – das ist wichtig, denn Zugriffstokens gewähren Zugang zu echten Konten.
Anleitung
- Fügen Sie das Token in das Feld „Token“ ein. Ein vorangestelltes "Bearer " und Zeilenumbrüche werden automatisch entfernt.
- Lesen Sie den dekodierten Header und die Payload, und prüfen Sie in der Tabelle „Claims“ Aussteller, Subjekt, Empfänger und Gültigkeitszeitraum.
- Um die Signatur zu prüfen, gehen Sie zu „Signatur prüfen“. Geben Sie für HS256, HS384 oder HS512 das gemeinsame Secret ein; aktivieren Sie „Secret ist base64-kodiert“, falls es so kodiert ist.
- Fügen Sie bei RS-, PS-, ES- oder EdDSA-Tokens den öffentlichen Schlüssel als PEM-Block, als X.509-Zertifikat, als JWK oder als ganzes JWKS ein.
- Klicken Sie auf „Prüfen“. Das Ergebnis zeigt, ob die Signatur gültig ist.
Funktionen
- Lesbare Claims: Ablaufzeit, Beginn der Gültigkeit und Ausstellungszeit werden in UTC, in Ihrer Zeitzone und relativ zu jetzt angezeigt, mit einem laufend aktualisierten Status.
- Signaturprüfung: Unterstützt HS256/384/512, RS256/384/512, PS256/384/512, ES256/384/512 und EdDSA (Ed25519) über die Web Crypto API Ihres Browsers.
- Flexible Schlüsseleingabe: Akzeptiert öffentliche SPKI-PEM-Schlüssel, X.509-Zertifikate, einzelne JWKs und JWK-Sets, aus denen der Schlüssel anhand seines Werts kid gewählt wird.
- Verständliche Fehlermeldungen: Zeigt an, ob ein Token die falsche Anzahl von Teilen, ungültiges base64url oder ungültiges JSON hat oder ein verschlüsseltes JWE ist.
- Privat von Grund auf: Nichts wird hochgeladen oder gespeichert. Schlüssel bleiben in diesem Browser-Tab und sind weg, sobald Sie ihn schließen.
Beispiele
Warum antwortet die API mit 401?
Fügen Sie das Zugriffstoken aus der fehlgeschlagenen Anfrage ein. Die Tabelle „Claims“ zeigt „Abgelaufen“ und die Ablaufzeit in Ihrer Zeitzone – so wissen Sie, dass der Client das Token nicht erneuert hat.
Ein ID-Token eines Identity Providers prüfen
Kopieren Sie das JWKS-Dokument des Anbieters (von seiner jwks_uri) und fügen Sie es als Schlüssel ein. Das Tool wählt den Schlüssel mit dem passenden Wert kid und prüft die RS256-Signatur.
Eine HS256-Integration debuggen
Fügen Sie ein Token und Ihr gemeinsames Secret ein. Stimmt die Signatur nicht überein, prüfen Sie, ob das Secret auf einer Seite base64-kodiert und auf der anderen reiner Text ist.
Einschränkungen und Hinweise
- Verschlüsselte Tokens (JWE, fünf Teile) können nicht entschlüsselt werden.
- Schlüssel werden nicht von einer JWKS-URL heruntergeladen – kopieren Sie stattdessen das JSON von der URL und fügen Sie es ein.
- PKCS#1-Blöcke mit "BEGIN RSA PUBLIC KEY" werden nicht unterstützt; wandeln Sie sie zuerst in einen SPKI-Block mit "BEGIN PUBLIC KEY" um.
- Geprüft wird nur die Signatur. Ob Aussteller, Empfänger und andere Claims akzeptabel sind, hängt von Ihrer Anwendung ab.
- Ältere Browser unterstützen EdDSA (Ed25519) möglicherweise nicht; das Tool weist Sie darauf hin, wenn ein Schlüssel oder Algorithmus nicht unterstützt wird.
Häufige Fragen
Ist es sicher, hier ein Token einzufügen?
Das Token wird von JavaScript in Ihrem Browser dekodiert und nirgendwohin gesendet. Behandeln Sie Produktions-Tokens trotzdem wie Passwörter: Verwenden Sie nach Möglichkeit abgelaufene Tokens oder Test-Tokens.
Kann jeder den Inhalt eines JWT lesen?
Ja. Header und Payload sind nur base64url-kodiert. Legen Sie niemals Geheimnisse in die Payload eines JWT; die Signatur schützt nur vor Änderungen, nicht vor dem Lesen.
Was bedeutet „Signatur ungültig“?
Das Token wurde nach dem Signieren verändert, oder es wurde mit einem anderen Schlüssel signiert als dem, den Sie angegeben haben. Stellen Sie sicher, dass Sie das richtige Secret verwenden oder den öffentlichen Schlüssel, der zum Wert kid im Header passt.
Brauche ich den privaten Schlüssel, um ein Token zu prüfen?
Nein. RS-, PS-, ES- und EdDSA-Tokens werden mit dem öffentlichen Schlüssel geprüft. Das Tool lehnt private Schlüssel ab, damit sie nicht versehentlich eingefügt werden.
Warum wird ein Token mit "alg": "none" nicht geprüft?
Ein solches Token hat keine Signatur, es gibt also nichts zu prüfen. Server sollten unsignierte Tokens ablehnen, sofern sie sie nicht ausdrücklich erwarten.