Über dieses Tool
JSON Web Tokens (JWT) sind ein kompaktes, URL-sicheres Format zur Übertragung von Ansprüchen zwischen zwei Parteien, definiert durch RFC 7519. Ein JWT besteht aus drei durch Punkte getrennten Base64-URL-codierten Segmenten: Header (Algorithmus und Token-Typ), Payload (Ansprüche) und Signatur (kryptografischer Authentizitätsnachweis). Der Header und die Nutzlast sind aus Gründen der URL-Sicherheit JSON und base64url-codiert. Die Signatur verwendet einen von mehreren Algorithmen (HS256, RS256, ES256 und andere) über den codierten Header und die Nutzlast.
Für die Dekodierung eines JWT – die Aufteilung in Segmente und deren Base64-Dekodierung – ist kein Geheimnis erforderlich. Jeder, der über den Token-Text verfügt, kann dessen Header und Payload lesen. Die Signatur kann jedoch nur mit dem geheimen (HMAC) oder öffentlichen Schlüssel (asymmetrisch) verifiziert werden. Die Dekodierung dient der Kontrolle; Durch die Verifizierung wird die Authentizität nachgewiesen.
Dieser Decoder teilt das Token auf, dekodiert jedes Segment base64, analysiert den Header und die Nutzlast als JSON und zeigt das Ergebnis an. Es wird nicht versucht, die Signatur zu überprüfen, da hierfür der geheime oder öffentliche Schlüssel erforderlich ist, über den der Decoder nicht verfügt. Bei der dekodierten Ausgabe handelt es sich um eine schreibgeschützte Inspektion – nützlich zum Debuggen von Tokens, aber kein Ersatz für eine ordnungsgemäße Überprüfung im Anwendungscode.
Warum JWTs dekodieren?
Das Debuggen von Authentifizierungsproblemen erfordert fast immer die Überprüfung von Token. Ein Token, das im Code gültig aussieht, weist möglicherweise falsche Ansprüche, einen unerwarteten Algorithmus, einen abgelaufenen Exp-Zeitstempel oder eine Nichtübereinstimmung mit der Zielgruppe auf. Die Entschlüsselung des Tokens zeigt genau, was der Emittent produziert hat.
Auch die Überprüfung der Token während der Integrationsarbeit hilft. Wenn Sie eine Verbindung zu einer API oder einem Identitätsanbieter eines Drittanbieters herstellen, lassen sich die tatsächlichen Anspruchsnamen, -formate und -strukturen am besten durch die Dekodierung von Beispieltokens verstehen, anstatt sich auf möglicherweise veraltete Dokumentation zu verlassen.
So verwenden Sie es
Fügen Sie das Token ein und erhalten Sie den analysierten Inhalt.
- Fügen Sie Ihr JWT ein: Legen Sie das vollständige Token (header.payload.signature) im Eingabebereich ab. Der Decoder akzeptiert Token mit oder ohne das optionale Bearer-Präfix.
- Überprüfen Sie den Header: Der Header zeigt den Signaturalgorithmus (alg) und den Tokentyp (typ). Gängige Algorithmen sind HS256, RS256 und ES256. Achten Sie auf alg: none, das ein nicht signiertes Token signalisiert und in der Produktion selten sicher ist.
- Untersuchen Sie die Nutzlast: Die Nutzlast enthält die Ansprüche: iss (Aussteller), sub (Betreff), aud (Zielgruppe), exp (Ablauf), iat (ausgestellt bei) und alle anwendungsspezifischen Ansprüche. Standardzeitstempel sind Unix-Epochensekunden.
- Separat überprüfen: Der Decoder überprüft die Signatur nicht. Um die Authentizität zu überprüfen, führen Sie das Token über eine JWT-Bibliothek mit dem entsprechenden geheimen oder öffentlichen Schlüssel in Ihrem Anwendungscode aus.
Technische Details
Das JWT-Format besteht aus drei Segmenten, die durch Punkte verbunden sind. Jedes Segment ist base64-URL-codiert – die URL-sichere Variante von base64, die - und _ anstelle von + und / verwendet, wobei Auffüllungen manchmal weggelassen werden. Die Dekodierung erfordert das Rückgängigmachen der URL-sicheren Ersetzungen, das Auffüllen des Segments und die Base64-Dekodierung.
Der Header und die Nutzlast sind nach der Dekodierung JSON. Das Signatursegment ist binär (Rohsignaturbytes) und nicht für Menschen lesbar. Es erfordert, dass der Bestätigungsschlüssel nützlich ist.
Allgemeine Ansprüche, die in RFC 7519 definiert sind: iss (Aussteller), sub (Subjekt-ID), aud (Zielgruppe), exp (Ablauf als Unix-Epochensekunden), nbf (nicht-vorheriger Zeitstempel), iat (ausgestellt am Zeitstempel), jti (eindeutige Token-ID). Anwendungsspezifische Ansprüche können mit einem beliebigen Namen angezeigt werden.
Häufig gestellte Fragen
- Ist es sicher, mein JWT hier einzufügen?
- Ja. Die Dekodierung erfolgt vollständig in Ihrem Browser – das Token wird niemals an einen Server gesendet. Bei JWTs handelt es sich jedoch um Anmeldeinformationen – geben Sie sie nicht öffentlich weiter (in Screenshots, Stack Overflow-Beiträgen usw.), da sie möglicherweise Zugriff auf Ihre Konten gewähren.
- Verifiziert dieses Tool die JWT-Signatur?
- Dieses Tool dekodiert den Token-Inhalt und zeigt ihn an. Für die Signaturüberprüfung ist der geheime Schlüssel (HMAC) oder der öffentliche Schlüssel (RSA/ECDSA) erforderlich, der auf Ihrem Server verbleiben sollte. Das Tool zeigt den verwendeten Algorithmus an, kann ihn aber ohne den Schlüssel nicht verifizieren.
- Was bedeuten die Standard-JWT-Ansprüche?
- iss = Aussteller, sub = Betreff (Benutzer-ID), exp = Ablaufzeit (Unix-Zeitstempel), iat = ausgestellt um, nbf = nicht vorher, aud = Zielgruppe, jti = JWT-ID. Benutzerdefinierte Ansprüche können beliebige anwendungsspezifische Daten enthalten.
- Warum kann jemand ein JWT entschlüsseln?
- JWTs sind codiert, nicht verschlüsselt. Die Nutzdaten sind Base64URL-codiert (nicht verschlüsselt), sodass sie von jedem gelesen werden können. Die Signatur verhindert Manipulationen, nicht das Lesen. Speichern Sie niemals vertrauliche Daten (Passwörter, SSNs) in JWT-Nutzdaten.
- Warum fehlt einigen Token eine Signatur?
- Token mit alg: none haben keine Signatur. Sie sind laut Spezifikation gültige JWTs, bieten jedoch keine Authentizitätsgarantien und sollten nicht in der Produktion akzeptiert werden.
- Sind JWTs verschlüsselt?
- Standard-JWT-Nutzlasten sind signiert, aber nicht verschlüsselt. JWE (JSON Web Encryption, RFC 7516) ist ein separates Format für verschlüsselte Token. Die meisten JWTs in freier Wildbahn sind JWS (nur signiert).
- Wird mein Token auf einen Server hochgeladen?
- Nein. Die Dekodierung erfolgt in Ihrem Browser. Der Token verlässt Ihr Gerät nicht.
- Wie lang sind JWTs normalerweise?
- Irgendwo zwischen einigen Hundert und mehreren Tausend Zeichen. Die Länge hängt von der Anzahl und Größe der Ansprüche sowie der Signaturlänge ab (die vom Algorithmus abhängt).
Related Articles
DeveloperEssential Developer Tools: JSON, Base64, RegEx, and More
A comprehensive overview of the developer utilities every programmer should know, from data format converters to encoding tools.
9 min readDeveloper & SecurityHashing, Encryption, and Encoding Explained: A Developer's Security Guide
Understand the differences between hashing, encryption, and encoding. Learn when to use MD5, SHA-256, Base64, AES, and other cryptographic tools in your applications.
10 min readData & ProductivitySpreadsheet & Data Conversion Guide: Excel, CSV, JSON, and More
Learn how to convert between spreadsheet and data formats like Excel, CSV, JSON, and XML. Practical tips for handling data migration, cleaning, and transformation.
10 min readPrivacy & TechnologyWhy Browser-Based Tools Are the Future: No Installs, No Uploads, No Risk
Discover why browser-based tools are replacing desktop software and cloud uploads. Learn how client-side processing keeps your files private while delivering powerful functionality.
7 min read