JWT-Decoder & Security-Analyse
Fügen Sie ein JSON Web Token ein, um es zu dekodieren, die Signatur zu prüfen und es so zu sehen wie ein Angreifer: fälschbare Algorithmen, bekannte Secrets, eingeschleuste Schlüssel, fehlende Claims und Daten, die nie in ein Token gehören — jeweils mit Lösung.
Läuft zu 100 % im Browser mit Web Crypto. Tokens, Secrets und Schlüssel werden nie hochgeladen, gespeichert oder in die URL geschrieben.
- Header27 B
- Payload118 B
- Signatur32 B
Rechtschreib- und Grammatik-Erweiterungen sind für dieses Feld abgeschaltet.
Gültig für 4 Jahre
HS256 HMAC mit SHA-2566 Claimsläuft ab in 4 JahrenSignatur nicht geprüft
Header
algAlgorithmus"HS256"HMAC mit SHA-256typTokentyp"JWT"
Payload
subSubjekt"user_8f2a91"nameName"Ada Lovelace"emailE-Mail"ada@example.com"roleRolle"admin"iatAusgestellt17672256002026-01-01 00:00 UTC · vor 4 TagenexpLäuft ab18934560002030-01-01 00:00 UTC · in 4 Jahren
Funde
- Hoch
Gültig für 4 Jahre
Ein Token lässt sich nicht zurückholen. Wer es aus einem Log, Browser oder Proxy kopiert, behält 4 Jahre lang Zugriff.
Lösung: Access Tokens: 5–60 Minuten. Für lange Sitzungen rotierende Refresh Tokens, die der Server widerrufen kann.
- Warnung
Kein Aussteller (iss)
Ein Verifier, der mehreren Ausstellern vertraut, kann nicht erkennen, von wem das Token stammt.
Lösung: iss setzen und gegen eine Allow-List prüfen.
- Warnung
Keine Zielgruppe (aud)
Jeder Dienst, der dem Aussteller vertraut, akzeptiert dieses Token — eines für eine API funktioniert bei allen.
Lösung: aud auf die vorgesehene API setzen und jede API das prüfen lassen.
- Hinweis
Signatur mit geteiltem Secret (HS256)
Bei HMAC kann jeder Dienst, der Tokens prüft, auch Tokens ausstellen — und das Secret muss auf jeden Dienst kopiert werden.
Lösung: Innerhalb eines Dienstes in Ordnung. Bei mehreren Verifiern besser ES256 oder EdDSA und nur den Public Key veröffentlichen.
- Hinweis
Keine Token-ID (jti)
Ohne jti lässt sich ein einzelnes Token weder widerrufen noch ein Replay erkennen.
Lösung: Eine zufällige jti ergänzen, wenn Widerruf oder Einmalnutzung nötig sind.
- Hinweis
Personenbezogene Daten: email
E-Mail-Adressen sind für jeden lesbar, der das Token hat — und Tokens landen in Logs.
Lösung: Nur mitgeben, was die API braucht; den Nutzer über eine undurchsichtige sub referenzieren.
Signatur prüfen
HS256HMAC-Secret einfügen. Fügen Sie stattdessen den Public Key des Ausstellers ein, wird auf Algorithmus-Verwechslung geprüft.
Was dieses Tool prüft
- Signatur: Prüfung mit Secret, PEM-Public-Key, X.509-Zertifikat oder JWKS — alles mit Web Crypto
- Fälschung: alg none in jeder Schreibweise, entfernte Signaturen, über 100 bekannte HMAC-Secrets, Algorithmus-Verwechslung
- Header-Injection: eingebettetes jwk, entfernte jku / x5u, kid-Path-Traversal, x5c, crit
- Claims: fehlende exp, iss, aud und jti, lange Laufzeiten, NumericDate-Fehler (Strings, Millisekunden), Uhrzeitabweichung
- Datenlecks: Passwörter, API-Schlüssel, private Schlüssel, Kartennummern und E-Mails im Payload
- Parser-Fallen: doppelte Schlüssel, base64 mit Padding, übergroße Tokens, kurze RSA-Schlüssel, veraltetes JWE RSA1_5
Häufige Fragen
Ist es sicher, ein JWT hier einzufügen?
Dekodieren, Prüfungen und Signaturprüfung laufen vollständig im Browser über die eingebaute Web Crypto API. Das Token wird nie gesendet, gespeichert oder protokolliert und landet nie in der Seiten-URL — überprüfbar in den DevTools unter Netzwerk. Ein echtes Produktions-Token trotzdem wie ein Passwort behandeln: lieber Test- oder abgelaufene Tokens nutzen und eines widerrufen, das Sie irgendwo eingefügt haben, das Sie nicht kontrollieren.
Ist ein JWT verschlüsselt?
Nein. Ein signiertes JWT (JWS) ist base64url-kodiert, nicht verschlüsselt: Wer es hat, kann Header und alle Claims lesen. Die Signatur beweist nur, dass das Token nach dem Signieren nicht verändert wurde. Muss der Inhalt geheim bleiben, gehört er auf den Server oder in ein verschlüsseltes JWT (JWE).
Was ist der Unterschied zwischen HS256 und RS256?
HS256 signiert und prüft mit einem geteilten Secret — jeder Dienst, der Tokens prüft, kann also auch welche ausstellen. RS256 signiert wie ES256 und EdDSA mit einem privaten Schlüssel und prüft mit einem Public Key, den Sie als JWKS veröffentlichen können. HS256 passt für einen einzelnen Dienst; sobald mehrere Dienste prüfen, besser ein asymmetrisches Verfahren.
Wie lange sollte ein JWT gültig sein?
Für Access Tokens 5 bis 60 Minuten. Ohne zusätzliche Infrastruktur lässt sich ein JWT nicht widerrufen; seine Laufzeit ist genau die Zeit, in der eine gestohlene Kopie funktioniert. Lange Sitzungen über rotierende Refresh Tokens lösen, die der Server widerrufen kann — nicht über langlebige Access Tokens.
Was ist der alg-none-Angriff?
alg none kennzeichnet ein Token als unsigniert. Bibliotheken, die den Algorithmus aus dem Token-Header übernahmen, akzeptierten solche Tokens — Angreifer entfernten die Signatur, setzten alg auf none und änderten die Claims, teils mit Schreibweisen wie „None“ oder „nOnE“. Die Lösung liegt beim Verifier: nur eine feste Allow-List von Algorithmen akzeptieren.
Kann dieses Tool mein HMAC-Secret knacken?
Es probiert lokal nur rund hundert Secrets, die in Dokumentationen und Tutorials stehen — etwa „your-256-bit-secret“ von jwt.io. Passt eines, hätte es jeder auf dieselbe Weise finden können: rotieren. Ein zufälliges 256-Bit-Secret ist für diesen und jeden Brute-Force-Test außer Reichweite.
Heuristische Prüfungen eines einzelnen Tokens, kein vollständiges Audit Ihrer Authentifizierung. Dekodierung und Prüfung nutzen die Web Crypto Ihres Browsers; keine Cookies, nichts geht an einen Server.