JWT Decoder

JSON Web Tokens dekodieren und prüfen

Beispiel ausprobieren

JWT-Token

Läuft lokal · Sicher zum Einfügen von Secrets
Auch ausprobieren:JWT Encoder

Was ist ein JWT (JSON Web Token)?

Ein JSON Web Token (JWT) ist ein kompaktes, URL-sicheres Token-Format, das in RFC 7519 definiert ist. Es kodiert eine Menge von Claims als JSON-Objekt, signiert — und verschlüsselt optional — dieses, sodass der Empfänger überprüfen kann, dass die Daten nicht manipuliert wurden. JWTs sind der De-facto-Standard für zustandslose Authentifizierung in REST APIs, Single-Sign-On-Systemen und Microservice-Autorisierung.

JWT-Aufbau: Header · Payload · Signatur

Jeder JWT besteht aus drei base64url-kodierten Segmenten, die durch Punkte getrennt sind. Header und Payload sind einfaches JSON — für jeden lesbar — während die Signatur ein kryptografischer Wert ist, der nur mit dem richtigen Schlüssel verifiziert werden kann.

Kodiertes Token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwibmFtZSI6IkFsaWNlIiwicm9sZSI6ImFkbWluIiwiaWF0IjoxNzE3MjAwMDAwLCJleHAiOjE3MTcyMDM2MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

HeaderPayloadSignatur
Header
json
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload
json
{
  "sub":  "user123",
  "name": "Alice",
  "role": "admin",
  "iat":  1717200000,
  "exp":  1717203600
}

Warum einen JWT-Decoder verwenden?

Rohe JWTs sehen wie zufälliger Text aus. Dieses Tool rendert Header und Payload sofort als formatiertes JSON, sodass Sie Claims prüfen, Ablaufzeiten kontrollieren und Algorithmusentscheidungen auditieren können — ohne eine einzige Zeile Code zu schreiben.

🔍
Sofortige Claim-Inspektion
Sehen Sie jeden Claim im Payload — sub, iss, aud, exp, benutzerdefinierte Rollen, Berechtigungen — formatiert und lesbar mit einem Klick.
🔓
Kein geheimer Schlüssel erforderlich
Header und Payload sind öffentlich; nur die Signatur benötigt das Geheimnis. Dieses Tool dekodiert beide ohne Ihren Signierschlüssel.
⏱️
Ablauf- und Zeitstempel-Analyse
Unix-Zeitstempel (exp, iat, nbf) werden automatisch in lesbare Datumsangaben umgewandelt, sodass Sie sofort sehen können, ob ein Token abgelaufen ist.
🔒
Läuft vollständig im Browser
Alles wird lokal verarbeitet — keine Token-Daten werden an einen Server gesendet. Sicher für die Verwendung mit Produktions-Tokens beim Debuggen.

Standard JWT Claims Referenz

RFC 7519 definiert sieben registrierte Claim-Namen. Diese sind nicht erforderlich, ihre Verwendung wird jedoch für die Interoperabilität dringend empfohlen. Sie können dem Payload beliebige benutzerdefinierte Claims hinzufügen.

ClaimBeschreibungTyp
issAusstellerIdentifiziert, wer das Token ausgestellt hat — z. B. die URL Ihres Auth-Servers oder den Anwendungsnamen.string
subSubjektIdentifiziert den Hauptakteur, auf den sich der JWT bezieht — typischerweise eine Benutzer-ID oder ein Dienstkonto.string
audZielgruppeIdentifiziert die vorgesehenen Empfänger. Die empfangende Partei muss prüfen, ob dies mit ihrer Kennung übereinstimmt.string | string[]
expAblaufzeitUnix-Zeitstempel, nach dem das Token nicht mehr akzeptiert werden darf. Immer setzen, um den Schaden durch ein gestohlenes Token zu begrenzen.number
nbfNicht vorUnix-Zeitstempel, vor dem das Token nicht akzeptiert werden darf. Nützlich für zukünftig datierte Tokens.number
iatAusgestellt umUnix-Zeitstempel, zu dem das Token ausgestellt wurde. Wird zur Berechnung des Token-Alters verwendet.number
jtiJWT IDEin eindeutiger Bezeichner für das Token. Ermöglicht den Widerruf durch serverseitiges Speichern und Prüfen verwendeter JTI-Werte.string

JWT-Signierungsalgorithmen

Der alg-Header-Claim gibt an, welcher Algorithmus das Token signiert hat. Die Wahl beeinflusst Sicherheit, Performance und ob Drittanbieter-Dienste Tokens ohne den privaten Schlüssel verifizieren können.

AlgorithmusFamilieSchlüsseltypHinweise
HS256HMACSymmetricAm häufigsten verwendet. Gemeinsames Geheimnis — jeder mit dem Geheimnis kann signieren und verifizieren.
HS384HMACSymmetricStärkere HMAC-Variante; moderater Performance-Aufwand.
HS512HMACSymmetricStärkste HMAC-Variante.
RS256RSAAsymmetricMeistgenutzter asymmetrischer Algorithmus (Google, Auth0, Okta). Öffentlicher Schlüssel verifiziert ohne privaten Schlüssel.
RS384RSAAsymmetricRS-Variante mit höherer Sicherheit.
RS512RSAAsymmetricStärkste RS-Variante.
ES256ECDSAAsymmetricElliptische Kurve — kürzere Signaturen als RSA, beliebt auf Mobilgeräten und IoT.
PS256RSA-PSSAsymmetricRSA-PSS: moderner und sicherer als das auf PKCS1v1.5 basierende RS256.
noneKeine Signatur — kritisch gefährlich. Niemals Tokens mit alg: none in der Produktion akzeptieren.

Sicherheitsüberlegungen

Ein JWT zu dekodieren ist immer sicher. Einem JWT ohne ordnungsgemäße Signaturverifizierung zu vertrauen, ist es nicht. Beachten Sie diese Regeln, wenn Sie Tokens in Ihrer Anwendung verwenden.

Immer sicher
  • Einen JWT in den Entwicklertools oder in diesem Tool dekodieren und inspizieren
  • exp, iat und nbf verwenden, um die Token-Lebensdauer zu verstehen
  • Payload-Claims zum Debuggen protokollieren (sensible PII weglassen)
  • Den alg-Header lesen, um zu verstehen, wie das Token signiert wurde
Niemals tun
  • Claims im Payload vertrauen, ohne die Signatur serverseitig zu verifizieren
  • Tokens mit alg: none akzeptieren — das bedeutet überhaupt keine Signatur
  • Zugriffs-Tokens in localStorage in sicherheitskritischen Anwendungen speichern (httpOnly-Cookies bevorzugen)
  • exp weit in die Zukunft setzen für Tokens mit sensiblen Berechtigungen

Häufige Anwendungsfälle

Debugging von Authentifizierungsabläufen
Fügen Sie ein Token aus dem Netzwerk-Tab Ihres Browsers ein, um Claims zu prüfen, eingebettete Rollen zu kontrollieren und die Ablaufzeit zu verifizieren — ohne Produktionscode anzufassen.
Drittanbieter-Tokens inspizieren
Tokens von Google, Auth0, Okta oder Azure AD schnell auslesen, um zu sehen, welche Claims Ihr Anbieter einschließt, und sie mit Ihrem erwarteten Schema vergleichen.
API-Entwicklung und -Tests
Beim Schreiben oder Testen von API-Endpunkten den Autorisierungs-Header dekodieren, um zu bestätigen, dass Ihre Token-Generierungslogik die richtigen Werte für sub, aud und scope setzt.
Microservice-Autorisierung
In Service-Meshes validiert jeder Dienst den JWT vom vorgelagerten Aufrufer. Tokens dekodieren, um nachzuverfolgen, welcher Dienst das Token ausgestellt hat und welche Berechtigungen es beansprucht.
Support und Incident Response
Wenn ein Benutzer einen Authentifizierungsfehler meldet, das Token dekodieren, um zu prüfen, ob es abgelaufen ist, ob die Zielgruppe falsch ist oder ob ein erforderlicher Claim fehlt.
Sicherheits-Audit
JWT-Nutzung über Dienste hinweg auditieren, indem Algorithmusentscheidungen, Ablaufzeitfenster und ob sensible Daten versehentlich im unverschlüsselten Payload gespeichert sind, geprüft werden.

JWT in Code dekodieren

Header und Payload sind base64url-kodiert — die Kodierung einfach umkehren. Base64url ersetzt + durch - und / durch _, und lässt = als Auffüllung weg. Nur die Signatur benötigt den geheimen Schlüssel.

JavaScript (browser)
function decodeJWT(token) {
  const [, payload] = token.split('.')
  const json = atob(payload.replace(/-/g, '+').replace(/_/g, '/'))
  return JSON.parse(json)
}
Node.js
const [, payload] = token.split('.')
const decoded = JSON.parse(
  Buffer.from(payload, 'base64url').toString()
)
Python
import base64, json

def decode_jwt(token):
    payload = token.split('.')[1]
    padding = '=' * (-len(payload) % 4)
    return json.loads(base64.urlsafe_b64decode(payload + padding))
CLI (bash + jq)
TOKEN="eyJhbGc..."
echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | jq .

Häufig gestellte Fragen

Kann ich einen JWT ohne den geheimen Schlüssel dekodieren?
Ja. Header und Payload eines JWT sind einfach base64url-kodiertes JSON — nicht verschlüsselt. Jeder kann sie dekodieren und lesen. Das Geheimnis (oder der private Schlüssel für RS/ES-Algorithmen) wird nur zur Verifizierung der Signatur benötigt, um zu bestätigen, dass das Token nicht manipuliert wurde.
Bedeutet das Dekodieren eines JWT, dass die Signatur verifiziert wurde?
Nein. Das Dekodieren liest nur die Claims. Die Verifizierung ist ein separater Schritt, der die kryptografische Signatur mit dem richtigen Schlüssel prüft. Verifizieren Sie immer die Signatur, bevor Sie Claims in Ihrer Anwendung vertrauen.
Was ist der Unterschied zwischen HS256 und RS256?
HS256 verwendet ein einzelnes symmetrisches Geheimnis, das zwischen Aussteller und Verifizierer geteilt wird — jeder mit dem Geheimnis kann Tokens erstellen und verifizieren. RS256 verwendet ein asymmetrisches Schlüsselpaar: der private Schlüssel signiert, der öffentliche Schlüssel verifiziert. Mit RS256 können Sie den öffentlichen Schlüssel verteilen, sodass externe Dienste Tokens verifizieren können, ohne sie fälschen zu können.
Warum schlägt die base64-Dekodierung manchmal fehl?
JWTs verwenden base64url-Kodierung, die - statt + und _ statt / verwendet und = als Auffüllzeichen weglässt. Standard-base64-Decoder benötigen + und / und möglicherweise Auffüllung. Fügen Sie die Auffüllung hinzu (auf ein Vielfaches von 4 mit =) und tauschen Sie die Zeichen, bevor Sie manuell dekodieren.
Ist es sicher, einen Produktions-JWT in dieses Tool einzufügen?
Ja — dieses Tool läuft vollständig in Ihrem Browser und sendet keine Daten an einen Server. Beachten Sie jedoch, wer Ihren Bildschirm oder Ihren Browser-Verlauf sehen kann. Bei hochsensiblen Tokens dekodieren Sie diese lokal in Ihrem Terminal.
Was bedeutet alg: none und ist es gefährlich?
alg: none bedeutet, dass das Token keine kryptografische Signatur hat — jeder kann ein Token mit beliebigen Claims erstellen und alg auf none setzen. Einige frühe JWT-Bibliotheken akzeptierten diese Tokens, was eine kritische Sicherheitslücke schuf. Eine sichere JWT-Bibliothek lehnt immer Tokens mit alg: none ab, sofern nicht explizit anders konfiguriert. Deaktivieren Sie diese Prüfung niemals.