
Ein Fakt, der viele Entwickler überrascht: Jedes JWT, das du von einem Authentifizierungsserver erhältst, ist standardmäßig nicht verschlüsselt — es ist nur signiert. Das bedeutet, Header und Payload sind einfacher Base64-kodierter Text, den jeder lesen kann. Was die Integrität des Tokens schützt, ist allein die Signatur, die beweist, dass er nicht manipuliert wurde.
Mit diesem Wissen könnte man erwarten, dass jeder Entwickler eine schnelle Möglichkeit hat, jederzeit einen Blick in einen JWT zu werfen. Doch wenn nachts um 2 Uhr ein mysteriöser 401 Unauthorized-Fehler auftaucht, lautet die häufigste Reaktion: neue Datei öffnen, schnell atob() schreiben, an den Punkten splitten und JSON manuell parsen — dabei gibt es eine viel schnellere Option.
JWT.io ist genau diese Option. Ein Single-Page-Tool, das eine Sache gut macht: Du kannst jeden JWT einfügen und siehst sofort den Inhalt, kannst die Signatur verifizieren und die Struktur verstehen. Kein Account. Keine Installation. Das gesamte Dekodieren läuft im Browser.
Was ist ein JSON Web Token?
Bevor wir uns das Tool anschauen, lohnt es sich zu verstehen, was hier überhaupt dekodiert wird.
Ein JSON Web Token ist eine kompakte, URL-sichere Zeichenkette, die Claims zwischen zwei Parteien repräsentiert. In der Praxis ist es das, was dein Server dir nach dem Login gibt und was du dann bei jeder weiteren Anfrage als Identitätsnachweis mitsendest. Die meisten REST APIs und Single-Page-Apps nutzen sie.
Ein JWT hat genau drei Teile, getrennt durch Punkte:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
- Header (erstes Segment): Algorithmus und Token-Typ — z.B.
{"alg": "HS256", "typ": "JWT"} - Payload (zweites Segment): Die eigentlichen Claims — User-ID, Rollen, Ablaufzeit und alles, was deine App dort ablegt
- Signature (drittes Segment): HMAC- oder RSA-Signatur über die ersten beiden Segmente
Header und Payload sind Base64URL-kodiert, nicht verschlüsselt. Jeder, der den Token abfängt, kann diese beiden Teile lesen. Die Signatur verhindert Manipulation — ohne den geheimen Schlüssel lässt sich keine gültige Signatur fälschen.
Genau deshalb ist es während der Entwicklung und beim Debuggen wichtig, schnell in einen JWT schauen zu können: Du willst prüfen, ob die richtigen Claims im Payload stehen, den Ablauf-Timestamp (exp) kontrollieren und sicherstellen, dass der Algorithmus mit dem übereinstimmt, was dein Backend erwartet.
Wie JWT.io funktioniert
Öffne jwt.io und du landest direkt im Debugger — keine Landing Page, kein Marketing, kein Anmelde-Popup. Links befindet sich ein großes Textfeld für deinen kodierten Token, rechts drei farbige Panels mit dem dekodierten Header, Payload und der Signatur-Verifikation.
Füge einen JWT in das linke Panel ein und das dekodierte Ergebnis erscheint sofort. Die Panels sind farblich kodiert: Rot/Pink für den Header-Teil, Lila für den Payload, Blau für die Signatur — passend zur Farbe der jeweiligen durch Punkte getrennten Segmente in der Eingabe.
Das Payload-Panel zeigt deine Claims als formatiertes JSON, auf einen Blick lesbar:
{
"sub": "user_8f3a2c",
"email": "[email protected]",
"role": "admin",
"iat": 1742568000,
"exp": 1742654400
}
Für die Signaturverifizierung gibst du dein Secret ein (für HMAC-Algorithmen wie HS256) oder fügst einen öffentlichen Schlüssel ein (für RS256, ES256). Das Tool zeigt „Signature Verified” oder „Invalid Signature” an. Das ist bei Integrationsarbeiten wirklich praktisch — wenn du einen Service-to-Service-Aufruf debuggst und prüfen musst, ob ein Token mit dem erwarteten Schlüssel signiert wurde, geht das in Sekunden.
Warum Client-seitige Verarbeitung wichtig ist
Authentifizierungstoken in beliebige Online-Tools einzufügen ist ein echtes Sicherheitsrisiko — und Entwickler haben recht, vorsichtig zu sein. Viele „Online-Tools” zum JWT-Dekodieren schicken deinen Token an einen Server, loggen ihn und legen ihn potenziell offen.
JWT.io ist anders. Das gesamte Dekodieren und Verifizieren läuft per JavaScript im Browser. Beim Dekodieren eines Tokens werden keine Daten an externe Server übertragen. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab des Browsers, füge einen Token ein und schau — keine einzige Netzwerkanfrage wird abgeschickt.
Das ist keine Marketing-Aussage, sondern verifizierbares Verhalten. Das Tool ist Open Source, und die clientseitige Verarbeitungsarchitektur bedeutet: Deine Token bleiben auf deiner Maschine.
Ein praktischer Sicherheitshinweis bleibt dennoch: Füge keine Produktions-Token mit sensiblen Nutzerdaten in irgendein Web-Tool auf einem geteilten oder nicht vertrauenswürdigen Rechner ein. Für Entwicklungs-, Staging- oder Test-Token ist JWT.io vollkommen sicher.
Unterstützte Algorithmen
JWT.io unterstützt die gesamte Bandbreite an Algorithmen, die du in realen Systemen antreffen wirst:
| Algorithmus | Typ | Typischer Einsatz |
|---|---|---|
| HS256 / HS384 / HS512 | HMAC + SHA | Einzelne Services, geteiltes Secret |
| RS256 / RS384 / RS512 | RSA-Signatur | Verteilte Systeme, Public-Key-Verifikation |
| ES256 / ES384 / ES512 | ECDSA | Kompakte Token, IoT |
| PS256 / PS384 / PS512 | RSA-PSS | Höhere Sicherheitsanforderungen |
Für HMAC-Algorithmen gibst du das geteilte Secret an, um die Signatur zu verifizieren. Für asymmetrische Algorithmen (RS*, ES*, PS*) fügst du den öffentlichen Schlüssel im PEM-Format ein. Das Tool übernimmt das Parsing und zeigt das Ergebnis sofort an.
Praktische Anwendungsfälle
Auth-Fehler debuggen: Wenn ein Nutzer meldet, dass er auf eine geschützte Route nicht zugreifen kann, lautet die erste Frage oft: „Was steht eigentlich in seinem Token?” Das Dekodieren in JWT.io dauert drei Sekunden. Du kannst prüfen, ob der Token abgelaufen ist, ob der Role-Claim richtig gesetzt ist und ob die Audience (aud) mit dem übereinstimmt, was deine API erwartet.
Integrationstests: Wenn du dich an einen Drittanbieter-Identity-Provider anschließt — Auth0, Okta, Cognito, Keycloak — können die ausgestellten Token Claims enthalten, die du auf dein eigenes User-Modell mappen musst. Einen Beispiel-Token zu dekodieren zeigt dir genau, welche Felder vorhanden sind, bevor du eine einzige Zeile Code schreibst.
Lernen und Onboarding: Für Entwickler, die neu in der Authentifizierung sind, ist JWT.io ein ausgezeichnetes Lehrtool. Den dekodierten Payload neben dem kodierten String zu sehen macht Base64URL-Encoding greifbar statt abstrakt. Es ist eines dieser Tools, wo der „Aha-Moment” beim ersten Mal kommt.
Schnelle Plausibilitätschecks: Bevor du eine Änderung in deinem Token-Generierungscode auslieferst, füge eine Beispiel-Ausgabe in JWT.io ein und prüf, ob der Payload die richtigen Felder im richtigen Format enthält.
Für Teams, die intensiver mit APIs arbeiten — Requests bauen, Endpoints testen, Collections verwalten — passt Hoppscotch gut zu JWT.io. Du holst dir einen Token von einem Auth-Endpoint in Hoppscotch, dekodierst ihn in JWT.io, um die Claims zu prüfen, und verwendest den Token dann in nachfolgenden Requests. Beide Tools ergänzen sich in einem reinen Browser-Workflow.
Ein Vergleich der Alternativen
Bevor JWT.io existierte (oder wenn Entwickler es nicht kennen), werden verschiedene Alternativen bemüht:
Manuelles Base64-Dekodieren: Token am . splitten, atob() auf jedes Segment in der Browser-Konsole anwenden, JSON parsen. Funktioniert, dauert aber länger, der Umgang mit URL-sicheren Base64-Varianten ist umständlich, und Signaturverifikation gibt’s nicht.
Schnelles Script schreiben: Eine JWT-Bibliothek importieren und einen Verify-Aufruf schreiben ist für Produktionscode in Ordnung, für eine schnelle Debug-Session aber Overkill. Außerdem muss eine lokale Umgebung vorhanden sein.
Andere Online-Dekoder: Es gibt einige, aber viele verifizieren keine Signaturen, unterstützen nicht die volle Algorithmen-Bandbreite oder schicken deinen Token an ein Backend. JWT.ios Kombination aus vollständigem Algorithmen-Support, clientseitiger Verarbeitung und klarer visueller Ausgabe ist schwer zu schlagen.
Für allgemeine Kodierungs- und Datentransformationsaufgaben — Base64, Hex, URL-Encoding und Hunderte mehr — lohnt sich IT Tools als Bookmark neben JWT.io. Ein weiteres login-freies, browserbasiertes Tool mit einer breiten Palette an Utilities für die tägliche Entwicklungsarbeit.
Ein Hinweis zur JWT-Spezifikation
JWT ist in RFC 7519 definiert, die Signaturalgorithmen werden in RFC 7515 (JWS) behandelt. Wenn du verstehen willst, warum ein bestimmter Claim existiert oder wie die Kodierung auf Byte-Ebene funktioniert, sind diese Dokumente die autoritative Quelle.
Die Spezifikation stellt klar: JWT ist ein Format, kein Sicherheitsprotokoll. JWTs zu verwenden macht deine Authentifizierung nicht automatisch sicher. Kurze Ablaufzeiten, korrekte Signaturverifizierung und sorgfältiger Umgang mit dem alg-Feld (um Algorithm-Confusion-Angriffe zu verhindern) liegen weiterhin in deiner Verantwortung. JWT.io hilft dir, Token schnell zu inspizieren und zu verifizieren — aber Bugs zu vermeiden, die wirklich zählen, erfordert das Verstehen der Spezifikation.
Jenseits des Debuggers
Die JWT.io-Website pflegt außerdem eine Liste von JWT-Bibliotheken für alle großen Programmiersprachen — Node.js, Python, Go, Java, Ruby, PHP, .NET und viele andere. Jeder Bibliothekseintrag enthält verifizierten Informationen darüber, welche Algorithmen unterstützt werden. Wenn du für ein neues Projekt eine Bibliothek auswählst, spart dir diese Referenzseite das Hin- und Herspringen zwischen Dokumentationsseiten.
Der Debugger selbst ist das Hauptzugpferd, aber das Bibliotheksverzeichnis ist eine nützliche sekundäre Ressource, wenn du JWT-Handling von Grund auf aufbaust.
Wenn du das nächste Mal auf einen undurchsichtigen Token-String starrst und dich fragst, was da drin steckt, füge ihn einfach in jwt.io ein. Das dekodierte Ergebnis beantwortet deine Frage normalerweise in unter zehn Sekunden. Kein Account, nichts installieren, nichts an einen Server schicken.
Je mehr Dienste auf tokenbasierte Authentifizierung und verteilte Systeme umsteigen — wo Vertrauen ohne geteilte Sessions etabliert werden muss — desto mehr werden Tools wie JWT.io zum festen Bestandteil des täglichen Werkzeugkastens statt einer gelegentlichen Referenz. Leg’s jetzt als Lesezeichen ab — du wirst es früher nutzen, als du denkst.