JWT Decoder

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JWT Decoder

Dekodiert Header und Payload eines JSON Web Token, damit Sie seine Claims, den Algorithmus und die Ablaufzeit lesen können.

How it works

Ein JWT besteht aus drei durch Punkte verbundenen Base64URL-Abschnitten: Header, Payload, Signatur. Die ersten beiden sind kodiert, nicht verschlüsselt, und genau deshalb braucht ihr Lesen überhaupt keinen Schlüssel – dieses Tool dekodiert sie per Base64URL, parst das JSON und vergleicht den exp-Claim mit der aktuellen Zeit, um den Ablauf zu kennzeichnen. Der Signaturabschnitt wird unverändert angezeigt und niemals gegen etwas geprüft, nichts von dem, was Sie einfügen, wird also irgendwohin gesendet, und es ist kein Geheimnis erforderlich.

When to use it

  • sub, scope, aud und iss aus einem Bearer-Token lesen, das eine API mit 401 oder 403 ablehnt.
  • Ein abgelaufenes Token von einem unterscheiden, dem lediglich ein von Ihrem Dienst verlangter Claim fehlt.
  • Prüfen, welchen alg und welche kid ein Identity Provider verwendet hat, bevor Sie die Verifikation gegen sein JWKS aufsetzen.
  • Bestätigen, dass ein Login-Ablauf die Claims ausgestellt hat, die Ihre Autorisierungsregeln tatsächlich lesen.
  • Ein im Netzwerk-Tab des Browsers mitgeschnittenes Token untersuchen, während Sie einem Berechtigungsfehler nachgehen.

Watch out for

  • Dekodieren ist keine Verifikation, und ein dekodiertes Token ist kein vertrauenswürdiges Token. Jeder kann eine Payload bearbeiten, neu kodieren und etwas erzeugen, das hier einwandfrei dekodiert. Erst die Prüfung der Signatur gegen den Schlüssel des Ausstellers macht einen Claim handlungswürdig.
  • Lassen Sie einen Server niemals dem alg-Feld im Token vertrauen. Den Verifikationsalgorithmus aus dem Header zu wählen ermöglicht den alg: none-Angriff und die Herabstufung von RS256 auf HS256, bei der ein Angreifer mit dem öffentlichen Schlüssel als HMAC-Secret signiert. Legen Sie den erwarteten Algorithmus und Schlüssel in Ihrem Verifikationscode fest.
  • Die Payload ist für jeden lesbar, der das Token besitzt, auch für den Endnutzer. Das Signieren schützt einen Claim vor Veränderung; es verbirgt ihn in keiner Weise. Halten Sie Geheimnisse, interne IDs und personenbezogene Daten heraus.
  • exp, iat und nbf sind Sekunden seit der Epoche, nicht Millisekunden. Ein JavaScript-Wert aus Date.now() in exp legt den Ablauf zehntausende Jahre in die Zukunft, und jeder konforme Verifizierer akzeptiert das.

Not the right tool for: Zu entscheiden, ob eine Anfrage autorisiert ist. Das erfordert die serverseitige Prüfung von Signatur und Claims gegen den Schlüssel des Ausstellers; dies ist eine Debugging-Hilfe zum Lesen dessen, was ein Token aussagt.

Frequently Asked Questions

Ist das Dekodieren eines JWT dasselbe wie seine Verifikation?

Nein. Beim Dekodieren wird der Base64URL-kodierte Inhalt gelesen. Die Verifikation prüft die Signatur gegen einen geheimen Schlüssel. Jedes JWT lässt sich ohne Schlüssel dekodieren, im Produktivbetrieb sollten Sie aber immer verifizieren.

Was steht in der JWT-Payload?

Übliche Claims in der Payload sind sub (Subjekt bzw. Nutzer-ID), iat (Ausstellungszeit), exp (Ablaufzeit), aud (Zielgruppe) und iss (Aussteller). Eigene Claims können beliebig sein.

Was bedeutet der exp-Claim?

Der exp-Claim ist ein Unix-Zeitstempel, der angibt, wann das Token abläuft. Dieses Tool zeigt anhand von exp, ob das Token derzeit gültig oder abgelaufen ist.

How to Use JWT Decoder

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.