Zum Inhalt springen
ToolMug

JWT Decoder

Fügen Sie ein JSON Web Token ein, um Header und Payload zu sehen, zu prüfen, ob es abgelaufen ist, und die Signatur mit einem Secret oder öffentlichen Schlüssel zu verifizieren. Alles läuft lokal, Produktions-Tokens werden also nie an einen Server gesendet.

Läuft in Ihrem Browser – Ihre Eingaben werden nicht hochgeladen

Das Decodieren prüft die Signatur nicht. Jeder kann ein Token mit beliebigen Claims erstellen.

So funktioniert es

  1. Fügen Sie das Token ein – mit oder ohne das Präfix „Bearer “. Die drei Teile werden farblich unterschieden.
  2. Lesen Sie den decodierten Header und die Payload. Die Claims iat, nbf und exp werden als Datum mit relativer Zeitangabe angezeigt.
  3. Um die Signatur zu prüfen, geben Sie bei HS256/384/512 das gemeinsame Secret ein oder fügen Sie bei RS-, PS-, ES- und EdDSA-Tokens den öffentlichen Schlüssel (PEM oder JWK) ein.
  4. Kopieren Sie das decodierte JSON, wenn Sie es anderswo brauchen.

Optionen erklärt

Header
Metadaten zum Token, meist alg (der Signaturalgorithmus) und typ. Ein kid-Feld gibt an, mit welchem Schlüssel signiert wurde.
Payload
Die Claims. Zu den registrierten gehören sub (Subjekt), iss (Aussteller), aud (Zielgruppe), iat (ausgestellt am), nbf (nicht vor) und exp (Ablauf), alle Zeiten in Unix-Sekunden.
Signatur
Belegt, dass Header und Payload nicht verändert wurden. Zur Prüfung brauchen Sie das Secret (HMAC) oder den öffentlichen Schlüssel des Ausstellers (RSA, ECDSA, EdDSA).
Secret ist Base64-codiert
Manche Dienste speichern HMAC-Secrets Base64-codiert. Setzen Sie das Häkchen, wenn Ihr Secret in dieser codierten Form vorliegt.

Gängige Claims

Claim Bedeutung Beispiel
sub Auf wen sich das Token bezieht (Benutzer-ID) "1234567890"
iss Wer es ausgestellt hat "https://accounts.example.com"
aud Für wen es bestimmt ist "my-api"
exp Ablaufzeit, Unix-Sekunden 1790427600
iat Ausgestellt um, Unix-Sekunden 1790424000
nbf Nicht gültig vor, Unix-Sekunden 1790424000
jti Eindeutige Token-ID, verhindert Replay "a1b2c3"

Beispiel

Das Token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c wird zum Header {"alg":"HS256","typ":"JWT"} und zu einer Payload mit sub, name und iat (18. Januar 2018) decodiert. Mit dem Secret your-256-bit-secret wird die Signatur bestätigt.

Häufig gestellte Fragen

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

Das Token wird per JavaScript in Ihrem Browser decodiert und weder hochgeladen noch protokolliert. Behandeln Sie Access-Tokens trotzdem wie Passwörter – wer ein gültiges Token besitzt, kann es bis zum Ablauf verwenden.

Beweist das Decodieren, dass ein JWT echt ist?

Nein. Header und Payload sind nur Base64URL-codiert, jeder kann sie also lesen oder fälschen. Erst eine erfolgreiche Signaturprüfung mit dem richtigen Schlüssel zeigt, dass das Token vom erwarteten Aussteller stammt.

Warum schlägt die Prüfung mit dem richtigen Secret fehl?

Prüfen Sie, ob das Secret Base64-codiert ist, ob ein Leerzeichen oder Zeilenumbruch am Ende steht und ob der Algorithmus im Header dem des Ausstellers entspricht. Auch jede Änderung am Token, selbst an einem einzigen Zeichen, macht die Signatur ungültig.

Was bedeutet „alg none“?

Das Token gibt an, unsigniert zu sein. Server müssen solche Tokens ablehnen, sofern sie sie nicht ausdrücklich erwarten; ihre Annahme hat bereits zu realen Umgehungen der Authentifizierung geführt.

Wie bekomme ich den öffentlichen Schlüssel für RS256-Tokens?

Identity-Provider veröffentlichen ihre Schlüssel als JWKS, meist unter /.well-known/jwks.json. Kopieren Sie den Schlüssel, dessen kid zum Token-Header passt, und fügen Sie ihn hier als JWK ein.

Datenschutz

Dieses Tool läuft vollständig in Ihrem Browser. Ihre Dateien und Texte werden auf Ihrem Gerät verarbeitet und nie auf unsere Server hochgeladen.

Ähnliche Tools