JWT-Decoder
Dekodiere und untersuche JSON Web Tokens lokal: Header, Payload und Ablauf-Claims.
JWT-Decoder wird geladen… Wenn nichts passiert, aktiviere JavaScript.
Ein JSON Web Token (JWT) ist eine kompakte, URL-sichere Zeichenkette, die eine signierte Menge von Claims kodiert (Aussagen über einen Benutzer, eine Sitzung oder eine Berechtigung) in einem Format, das jede Partei mit dem richtigen Schlüssel unabhängig überprüfen kann. Definiert durch RFC 7519 (2015) und Teil der umfassenderen JOSE-Standardfamilie (Signierung und Verschlüsselung von JSON-Objekten), wurden JWTs schnell zum vorherrschenden Mechanismus für zustandslose Authentifizierung und API-Autorisierung in Web-, Mobil- und Microservice-Architekturen. Ein JWT besteht aus drei Base64url-kodierten Segmenten, getrennt durch Punkte: dem Header (Algorithmus-Metadaten), dem Payload (den Claims) und der Signatur.
Beispiele
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIn0.<sig>
Header {"alg":"HS256","typ":"JWT"} · Payload {"sub":"1234567890","name":"John Doe"}
Ein JWT besteht aus drei Base64url-Teilen, durch Punkte verbunden: Header.Payload.Signatur.
Häufig gestellte Fragen
Wird mein Token an einen Server hochgeladen?
Was sind die drei Teile eines JWT?
Wann sollte ich ein JWT in meiner eigenen Anwendung verwenden?
Wie unterscheidet sich ein JWT von einem Sitzungs-Cookie?
Überprüft dieses Tool die JWT-Signatur?
Was bedeuten die Standard-Zeitstempel-Claims?
Kann ein JWT ohne Signatur verwendet werden (alg: none)?
Sind JWT-Payloads privat und vertraulich?
Was ist der Unterschied zwischen HS256 und RS256?
Was ist ein häufiger Fehler von Entwicklern bei JWTs?
Über JWT-Decoder
JWTs tauchen in praktisch jedem modernen Authentifizierungsablauf auf. OAuth-2.0-Zugriffstokens werden fast durchweg als JWTs ausgegeben. OpenID-Connect-ID-Tokens sind JWTs, die die Identitäts-Claims des authentifizierten Benutzers tragen. Single-Sign-on-Systeme reichen JWTs zwischen Identitäts- und Dienstanbietern weiter. Serverless-Funktionen und Edge-Worker validieren JWTs lokal ohne Datenbankabfrage und ermöglichen so zustandslose, horizontal skalierbare Authentifizierung. Mobile Apps speichern JWTs als Bearer-Tokens und fügen sie dem Authorization-Header jeder API-Anfrage bei. Zu verstehen, was in einem Token steckt (welche Berechtigungen es gewährt, wann es abläuft und wer es ausgestellt hat), ist eine tägliche Aufgabe für jeden Backend- oder Sicherheitsingenieur.
Dieses Tool dekodiert Header und Payload eines beliebigen JWT vollständig in deinem Browser. Es dekodiert jedes Segment per Base64url, parst das JSON und stellt die Claims in lesbarer Form dar. Numerische Zeitstempel (iat, exp, nbf) werden automatisch in lesbare Daten umgewandelt, sodass du sofort siehst, ob ein Token abgelaufen ist. Die Signatur wird unverändert angezeigt, aber bewusst nicht überprüft: Die Überprüfung erfordert das Geheimnis des Ausstellers (bei HMAC) oder dessen öffentlichen Schlüssel (bei RSA/ECDSA), und du solltest niemals eines davon in ein nicht vertrauenswürdiges Online-Tool einfügen. Da die Dekodierung lokal erfolgt, verlässt nicht einmal das Token selbst dein Gerät.
Einige Sicherheitspunkte zum Beachten: JWTs sind standardmäßig signiert, aber nicht verschlüsselt; der Payload ist lediglich Base64url-kodiert, was bedeutet, dass jeder, der das Token abfängt, dessen Claims lesen kann. Nimm niemals sensible personenbezogene Daten (Passwörter, Kreditkartennummern) in einen JWT-Payload auf. Der Angriff alg: none ist eine bekannte Schwachstelle in naiven JWT-Bibliotheken, die unsignierte Tokens akzeptieren; verwende stets eine gut geprüfte Bibliothek, die den Algorithmus explizit validiert. Prüfe außerdem den exp-Claim, bevor du einem Token vertraust: Eine gültige Signatur bedeutet nicht, dass das Token noch aktiv ist.
Der Aufstieg des JSON Web Token
JSON Web Tokens wurden von der Internet Engineering Task Force (IETF) im Rahmen der JOSE-Arbeitsgruppe (Signierung und Verschlüsselung von JSON-Objekten) eingeführt, mit dem im Mai 2015 veröffentlichten RFC 7519. Das Ziel war ein kompaktes, eigenständiges Anmeldeformat, das die ausführlichen und komplexen SAML-XML-Assertions ersetzen konnte, die in Single-Sign-on-Systemen von Unternehmen verwendet wurden. Das durch Punkte getrennte, Base64url-kodierte Design wurde bewusst gewählt, um URL-sicher zu sein und bequem in einen HTTP-Header zu passen.
Die Verbreitung war explosionsartig. Innerhalb weniger Jahre nach der Veröffentlichung hatte fast jedes große Authentifizierungs-Framework, von Auth0 über Firebase Authentication bis AWS Cognito, JWTs als Tokenformat standardisiert. Die Website jwt.io, von Auth0 als Debugging-Werkzeug gestartet, wurde zu einem der meistbesuchten Entwickler-Tools im Internet. Diese Popularität zog auch Prüfung an: Sicherheitsforscher katalogisierten eine Reihe von Implementierungsschwachstellen (den 'alg: none'-Fehler, Algorithmus-Verwechslungsangriffe), die naive Bibliotheksimplementierungen betrafen, und lösten eine Welle von Verbesserungen in JWT-Bibliotheken über alle Programmiersprachen hinweg aus.
Eine interessante Designentscheidung bei JWTs ist, dass der Payload für jeden lesbar ist: Die Signatur garantiert Integrität, aber keine Geheimhaltung. Das war Absicht: Die Entwickler wollten, dass Tokens ohne Schlüssel debugbar sind, damit Werkzeuge wie JWT-Decoder Entwicklern helfen, Tokens während der Entwicklung zu untersuchen. Der Kompromiss ist, dass Entwickler diszipliniert damit umgehen müssen, welche Claims sie aufnehmen, eine Lektion, die Teams auf die harte Tour lernten, als sie versehentlich JWTs mit sensiblen Benutzerdaten auslieferten.