JWT-Dekodierer
Dekodieren Sie JWT-Token online mit unserem kostenlosen JWT-Dekodierer. Inspizieren Sie sofort Header, Payload, Signatur, Ablauf und Claims. 100 % Browser — Ihr Token verlässt niemals Ihr Gerät. Keine Anmeldung, kein Tracking.
Was ist ein JWT?
Ein JSON Web Token oder JWT (ausgesprochen „jot“) ist ein kompaktes, URL-sicheres Tokenformat für den Transport von Claims zwischen zwei Parteien. Es ist in RFC 7519 definiert und das dominierende Credential-Format für OAuth-2.0-Access-Token, OpenID-Connect-ID-Token, API-Schlüssel moderner Auth-Anbieter (Auth0, Okta, Clerk, Supabase, Firebase) und servicübergreifende Token in Microservice-Architekturen.
„JSON Web Token (JWT) ist ein kompaktes Darstellungsformat für Claims, das für platzbeschränkte Umgebungen wie HTTP-Authorization-Header und URI-Abfrageparameter konzipiert ist.“ — RFC 7519, Abschnitt 1
Ein JWT besteht aus drei Base64URL-kodierten JSON-Objekten, die durch Punkte verbunden sind: header.payload.signature. Der Header beschreibt, wie der Token signiert ist (der alg-Claim — zum Beispiel HS256 oder RS256 — und der typ-Claim, normalerweise „JWT“). Der Payload transportiert die Claims: registrierte Claims wie iss, sub, aud, exp, iat sowie beliebige benutzerdefinierte Claims, die der Aussteller benötigt (role, scope, email, tenant ID). Die Signatur ist ein kryptografischer Nachweis, berechnet über Header und Payload mit dem Geheim- oder privaten Schlüssel des Ausstellers, der dem Empfänger erlaubt, Manipulationen zu erkennen.
Entscheidend ist: Ein JWT ist kodiert, nicht verschlüsselt. Jeder mit dem Token kann den Payload lesen — Dekodierung ist lediglich Base64URL- und JSON-Parsing. Die Sicherheitsgarantie stammt aus der Signatur: Ein Angreifer kann einen JWT lesen, aber ohne den Signaturschlüssel keinen anderen JWT erzeugen, der die Signaturverifizierung besteht. Deshalb ist es sicher, JWTs über das Netzwerk zu übertragen, aber unsicher, Geheimnisse hineinzupacken.
Ein JWT-Dekodierer zeigt Ihnen exakt, was ein Token enthält — Algorithmus, Claims, Ablaufzeit — ohne die Signatur anzutasten. Es ist der schnellste Weg, die Fragen „Ist dieser Token abgelaufen?“, „Welche Rolle hat dieser Benutzer?“, „Welcher Aussteller hat diesen Token ausgegeben?“ oder „Ist dies ein alg:none-Token, den ich ablehnen sollte?“ zu beantworten. Die gesamte Dekodierung in diesem Tool läuft lokal in Ihrem Browser, sodass das Einfügen eines aktiven Produktions-Tokens sicher ist.
JWT-Arbeit geht oft Hand in Hand mit anderen Entwicklertools. Möglicherweise müssen Sie ein Base64URL-umhülltes Segment dekodieren, wenn Sie einen fehlerhaften Token debuggen, einen Authorization-Header URL-dekodieren, nachdem Sie ihn aus einem Proxy erfasst haben, oder den exp-Claim manuell in ein menschenlesbares Datum konvertieren. Für eine tiefere Erläuterung, wie JWTs in Produktion signiert, verifiziert und rotiert werden, lesen Sie unseren Base64-Grundlagen-Leitfaden — Base64URL ist das Fundament, auf dem jeder JWT aufbaut.
// Decode a JWT in the browser — header & payload only
function decodeJwt(token) {
const [h, p, s] = token.split('.');
const pad = (seg) => seg + '==='.slice((seg.length + 3) % 4);
const decode = (seg) => JSON.parse(
atob(pad(seg).replace(/-/g, '+').replace(/_/g, '/'))
);
return { header: decode(h), payload: decode(p), signature: s };
}
const { header, payload } = decodeJwt(token);
console.log(header); // → { alg: 'HS256', typ: 'JWT' }
console.log(payload); // → { sub: 'user_123', exp: 1999999999, ... }
// Expiration check
const expired = payload.exp * 1000 < Date.now(); Hauptfunktionen
JWT sofort dekodieren
Einfügen und JWT in Echtzeit dekodiert sehen — Header, Payload und Signatur werden direkt geparst. Keine Dekodieren-Schaltfläche, kein Umweg über einen Server.
Ablauf-Erkennung
Liest automatisch den exp-Claim und zeigt ein rotes Abzeichen, wenn der Token abgelaufen ist — mit exaktem Ablaufdatum in Ihrer lokalen Zeitzone.
Algorithmusunabhängig
Dekodiert jeden JWS-Algorithmus — HS256/384/512, RS256/384/512, PS256/384/512, ES256/384/512, EdDSA und alg:none.
100 % lokal
Die Dekodierung läuft in Ihrem Browser über natives atob und JSON.parse. Ihr Token wird niemals hochgeladen — sicher für Produktions-Credentials.
Claim-bewusste Anzeige
Hebt die registrierten RFC-7519-Claims (iat, exp, nbf, iss, aud, sub, jti) hervor, sodass Sie Auth-Probleme auf einen Blick erkennen.
Ein-Klick-Kopieren
Kopieren Sie das Header-JSON, Payload-JSON oder die rohe Signatur mit einem einzigen Klick in die Zwischenablage — perfekt für Bug-Reports und Tests.
Beispiele
HS256-Token (gültig)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsIm5hbWUiOiJBbGljZSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTcxNTAwMDAwMCwiZXhwIjoxOTk5OTk5OTk5fQ.4NhxPjwoZxPNuxG-2C5ugGxaUsUJ0QyskAz7Ymz5Sg0
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "user_123",
"name": "Alice",
"role": "admin",
"iat": 1715000000,
"exp": 1999999999
} Mit HMAC-SHA256 signierter Token mit Subject, Rolle und zukünftiger Ablaufzeit — das gebräuchlichste JWT-Setup für Sitzungsauthentifizierung.
RS256-Token (abgelaufen)
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtleS0yMDI1LTAxIn0.eyJpc3MiOiJodHRwczovL2F1dGguZXhhbXBsZS5jb20iLCJhdWQiOiJhcGkuZXhhbXBsZS5jb20iLCJzdWIiOiI5MDA4NzE2NSIsImlhdCI6MTYwMDAwMDAwMCwiZXhwIjoxNjAwMDAzNjAwLCJzY29wZSI6InJlYWQ6dXNlciB3cml0ZTpwb3N0In0.signature_placeholder
{
"alg": "RS256",
"typ": "JWT",
"kid": "key-2025-01"
}
{
"iss": "https://auth.example.com",
"aud": "api.example.com",
"sub": "90087165",
"iat": 1600000000,
"exp": 1600003600,
"scope": "read:user write:post"
} RSA-signierter OAuth-Access-Token — beachten Sie die kid (Key-ID) im Header und den exp-Claim, der zeigt, dass der Token bereits abgelaufen ist.
OIDC-ID-Token
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJzdWIiOiIxMTA1MDIyNTExNTU4OTkwNzY2Mzk1IiwiYXpwIjoiY2xpZW50LWlkIiwiYXVkIjoiY2xpZW50LWlkIiwiZW1haWwiOiJhbGljZUBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpYXQiOjE3MTUwMDAwMDAsImV4cCI6MTk5OTk5OTk5OSwibm9uY2UiOiJhYmMxMjMifQ.signature
{
"alg": "ES256",
"typ": "JWT"
}
{
"iss": "https://accounts.google.com",
"sub": "110502251155899076639",
"azp": "client-id",
"aud": "client-id",
"email": "alice@example.com",
"email_verified": true,
"iat": 1715000000,
"exp": 1999999999,
"nonce": "abc123"
} OpenID-Connect-ID-Token mit ECDSA-Signatur, E-Mail-Claims und einer Nonce zum Schutz vor Replay-Angriffen.
alg:none-Token (unsigniert)
eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJkZWJ1Zy11c2VyIiwiaWF0IjoxNzE1MDAwMDAwfQ.
{
"alg": "none",
"typ": "JWT"
}
{
"sub": "debug-user",
"iat": 1715000000
} Unsignierter Token mit alg:none. Ihn in Produktion zu akzeptieren ist eine klassische JWT-Schwachstelle — lehnen Sie alg:none serverseitig stets ab.
Anleitung
- 1
JWT zum Dekodieren einfügen
Fügen Sie den vollständigen Token zum Dekodieren — einschließlich der drei durch Punkte getrennten Segmente — in das Eingabefeld ein. Der Dekodierer läuft sofort in Ihrem Browser; Sie müssen keine Schaltfläche klicken.
- 2
Dekodierten Header, Payload und Status lesen
Lesen Sie Algorithmus und Token-Typ im dekodierten Header, die Claims im dekodierten Payload sowie die Chips für Ablauf- und Ausstellungszeit oben. Ein abgelaufener Token wird rot gekennzeichnet.
- 3
Dekodierte Ausgabe kopieren
Verwenden Sie die Kopieren-Schaltfläche auf jedem Panel, um das dekodierte Header-JSON, das dekodierte Payload-JSON oder die rohe Signatur zu kopieren. Ihr Token wurde niemals versendet — die Dekodierung erfolgte lokal in Ihrem Browser.
Common Errors
alg:none akzeptieren
Ein unsignierter JWT kann von jedem gefälscht werden. Erlauben Sie alg:none niemals in Produktion — übergeben Sie stets eine explizite Algorithmusliste an Ihren verify-Aufruf.
jwt.verify(token, secret) // library default may allow 'none'
jwt.verify(token, secret, { algorithms: ['RS256'] }) Fehlender exp-Claim
Ein JWT ohne exp lebt ewig. Wird ein Token jemals geleakt, gibt es keinen natürlichen Widerrufspunkt. Setzen Sie stets eine Ablaufzeit, die zum Tokentyp passt.
{ "sub": "user_123", "role": "admin" } // no exp { "sub": "user_123", "role": "admin", "exp": 1715003600 } Geheimnisse im Payload speichern
JWT-Payloads sind nicht verschlüsselt — jeder mit dem Token kann sie lesen. Legen Sie niemals Passwörter, API-Schlüssel oder ungekürzte PII in einen JWT-Payload.
{ "sub": "user_123", "password": "hunter2" } { "sub": "user_123", "role": "admin" } // payload stays minimal Häufige Anwendungsfälle
- Authorization-Bearer-Token dekodieren
- Dekodieren Sie JWT-Token aus Authorization: Bearer-Headern, um die Claims, Audience und Ablaufzeit zu überprüfen, die Ihr Backend empfängt.
- OAuth 2.0- und OIDC-Token dekodieren
- Dekodieren Sie Access-Token und ID-Token, die von Authorization-Servern (Auth0, Okta, Google, Keycloak) während der OAuth-2.0- und OpenID-Connect-Integration zurückgegeben werden.
- Diagnose abgelaufener Sitzungen
- Bestätigen Sie in einer Sekunde, ob ein abgelehnter Token abgelaufen ist, die falsche Audience verwendet oder ein Uhrzeitversatzproblem hat.
- Überprüfung der Schlüsselrotation
- Lesen Sie die kid (Key-ID) im Header, um zu verifizieren, dass Ihre JWKS-Rotation Token mit dem erwarteten Schlüssel ausgibt.
- Sicherheitsüberprüfungen
- Erkennen Sie Token, die mit alg:none signiert sind, fehlendes exp haben oder PII im Payload preisgeben — bei Code-Review und Pentest.
- Inspektion von Microservice-Token
- Dekodieren Sie Service-zu-Service-Token innerhalb eines Mesh, um zu sehen, welche Scopes und welchen Subject ein nachgelagerter Aufruf autorisiert.
Technische Details
- RFC-7519-konform
- Verarbeitet JWS-Token, die RFC 7519 (JWT), RFC 7515 (JWS) und RFC 7518 (JWA) entsprechen — alle registrierten Algorithmen werden zur Dekodierung unterstützt.
- Base64URL-Dekodierung
- Verwendet das URL-sichere Base64-Alphabet (- und _ statt + und /), das in RFC 4648 definiert ist, mit paddingtolerantem Parsing.
- Browser-nativ, keine Abhängigkeiten
- Aufgebaut auf den Browser-APIs atob, TextDecoder und JSON.parse — keine externen Bibliotheken, keine Netzwerkaufrufe, keine Telemetrie.
Best Practices
- Niemals ohne Verifizierung vertrauen
- Ein Dekodierer zeigt Claims; er beweist sie nicht. Verifizieren Sie die Signatur stets serverseitig gegen den Schlüssel des Ausstellers, bevor Sie einem Claim vertrauen.
- alg:none in Produktion ablehnen
- Konfigurieren Sie Ihre JWT-Bibliothek mit einer expliziten Allowlist von Algorithmen. Akzeptieren Sie niemals alg:none und seien Sie misstrauisch bei alg-Abweichungen während der Schlüsselrotation.
- Payloads schlank halten
- Legen Sie Identifikatoren und kurzlebige Claims in den JWT; halten Sie umfangreiche Daten hinter einer undurchsichtigen Session-ID. Große Token kosten bei jeder Anfrage Bandbreite.
Häufig gestellte Fragen
Wie dekodiere ich einen JWT-Token online?
header.payload.signature) — in den Dekodierer oben ein. Die Dekodierung erfolgt sofort in Ihrem Browser: Header und Payload werden mit Base64URL in lesbares JSON dekodiert, und die Signatur wird als Rohzeichenkette angezeigt. Eine Statuszeile zeigt den Signaturalgorithmus, die Ausstellungszeit und den Ablauf, damit Sie einen abgelaufenen Token auf einen Blick erkennen. Um einen JWT manuell zu dekodieren, teilen Sie den Token an den Punkten, dekodieren Sie die ersten beiden Segmente mit Base64URL und parsen Sie sie als JSON — jeder mit dem Token kann seine Claims lesen, weil der Payload kodiert, nicht verschlüsselt ist. Dieser Dekodierer kann bedenkenlos mit Produktions-Token verwendet werden, weil nichts Ihr Gerät verlässt: keine Netzwerkanfrage, kein Logging, kein Tracking. Was ist ein JWT (JSON Web Token)?
Ist mein Token mit diesem JWT-Dekodierer sicher?
Wie funktioniert ein JWT-Dekodierer?
Kann dieses Tool eine JWT-Signatur verifizieren?
Was sind iat, exp, nbf, iss, aud, sub und jti?
Mein JWT ist abgelaufen — warum dekodiert ihn der Dekodierer trotzdem?
Was ist der Unterschied zwischen JWT, JWS und JWE?
Warum ist alg:none gefährlich?
alg:none hat keine Signatur — jeder kann einen erstellen und sich dabei als beliebiger Benutzer ausgeben. Frühe JWT-Bibliotheken akzeptierten alg:none standardmäßig, was zu einer bekannten Klasse von Authentifizierungs-Bypasses führte, bei denen ein Angreifer die Signatur entfernte, alg auf none setzte und einen Admin-Token fälschte. Jede ausgereifte JWT-Bibliothek lehnt alg:none heute ab, sofern es nicht explizit erlaubt ist, und Sie sollten es niemals für authentifizierte Anfragen akzeptieren. Dieser Dekodierer zeigt Ihnen dennoch einen alg:none-Token an, weil das Inspizieren während des Debuggings legitim ist — aber behandeln Sie jeden solchen Token, der in Produktion empfangen wird, als feindselig. Welche Algorithmen unterstützt dieser JWT-Dekodierer?
Sollte ich JWTs in localStorage oder Cookies speichern?
Wie dekodiere ich einen JWT in Node.js, Python oder Go?
jsonwebtoken.decode(token) nur zum Lesen, jsonwebtoken.verify(token, key) zur Verifizierung. Python: PyJWT.decode(token, options={'verify_signature': False}) zum Lesen, übergeben Sie einen Schlüssel zur Verifizierung. Go: jwt.ParseUnverified(token, claims) nur zum Lesen, jwt.Parse(token, keyFunc) zur Verifizierung. Verifizieren Sie in keiner Sprache jemals mit options={'verify_signature': False} in Produktionscode — genau das macht dieses Webtool bewusst zum Debuggen, und es ist nur sicher, wenn Sie inspizieren und nicht authentifizieren. Was ist die maximale Größe eines JWT?
Ich habe meinen Token eingefügt und erhalte „Ungültiges JWT-Format“ — was ist los?
header.payload.signature. Häufige Ursachen: (1) Sie haben versehentlich nur das Payload-Segment kopiert, (2) Leerzeichen oder Zeilenumbrüche wurden in die Mitte eingefügt, (3) der Token wurde beim Transport abgeschnitten (häufig bei Zeilenumbruch im Terminal), (4) der Token ist ein JWE, dessen Format header.encryptedKey.iv.ciphertext.tag (fünf Segmente) lautet, oder (5) der Token war URL-kodiert und Sie müssen ihn zuerst URL-dekodieren. Überprüfen Sie den Rohwert, den Ihre API zurückgegeben hat — die meisten Editoren zeigen unsichtbare Zeichen beim Hover an. Kann ich einen JWT ohne den Geheimschlüssel dekodieren?
Mein JWT funktioniert in Postman, aber mein Backend lehnt ihn ab — wie debugge ich das?
HS256-Token scheitert an einer Bibliothek, die nur für RS256 konfiguriert ist. (4) kid — wenn Sie Schlüsselrotation verwenden, ist die Key-ID im Header in Ihrem JWKS vorhanden? (5) Signatur — haben Sie den richtigen Geheim-/öffentlichen Schlüssel eingefügt? Dieser Dekodierer macht (1), (2), (3) und (4) in den Header- und Payload-Ansichten sichtbar, sodass Sie sie schnell ausschließen können. Verwandte Werkzeuge
Alle Werkzeuge anzeigen →MD5-Hash-Generator & Datei-Prüfsummen-Tool
Sicherheitswerkzeuge
MD5-, SHA-256-, SHA-1- & SHA-512-Hashes online kostenlos generieren. Text oder Dateien im Browser hashen, Prüfsummen verifizieren und Ergebnisse kopieren. Ohne Anmeldung.
Zufallspasswort-Generator — Anpassbar, Stark & Sicher
Sicherheitswerkzeuge
Starke Zufallspasswörter sofort generieren — kostenlos, ohne Anmeldung, 100 % im Browser. Länge & Zeichentypen anpassen, bis zu 50 auf einmal. Stärkeanzeige mit Entropie-Analyse.
UUID-Generator & -Dekodierer — v1, v4, v5, v7 Stapelmodus
Sicherheitswerkzeuge
Kostenloser UUID-Generator — v1-, v4-, v5-, v7-UUIDs sofort erstellen. Beliebige UUID dekodieren & validieren. Bis zu 50 auf einmal. Ohne Anmeldung, 100 % browserbasiert.
Zahlensystem-Konverter — Binär, Hex, Dezimal & Oktal
Konvertierungswerkzeuge
Zahlen zwischen Binär, Hexadezimal, Dezimal, Oktal und beliebigen Basen (2–36) sofort konvertieren. Kostenlos, privat, ohne Anmeldung — alles läuft in Ihrem Browser.
Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
Bilder Online Komprimieren — JPEG, PNG & WebP
Konvertierungswerkzeuge
Bildgröße um bis zu 80 % reduzieren — JPEG, PNG & WebP im Browser komprimieren, kein Upload nötig. Stapelverarbeitung für 20 Bilder, Qualität anpassen, Vorher-Nachher vergleichen. Kostenlos & privat.