Zum Inhalt springen

JWT-Claims lesen und HMAC-Token signieren oder prüfen

Fügen Sie ein Token ein oder erzeugen Sie eines aus Payload und Testgeheimnis. Eine gültige Signatur ersetzt keine Prüfung von Issuer, Audience und Berechtigung.

Läuft lokal in deinem Browser
Token
Claim checks
Algorithm—
Expiration—
Not before—
Issuer—
Dekodierter Header
Inspect a token to view its header.
Decoded payload
Inspect a token to view its payload.
Verify an HMAC signature

Das Geheimnis wird ausschließlich von der Kryptografie-API des Browsers verwendet. Der Verifier unterstützt HS256, HS384 und HS512 und sendet weder Token noch Geheimnis an VoriTools.

Prüfen Sie ein signiertes JWT und geben Sie zur Verifikation das zugehörige HMAC-Geheimnis ein.
Lokales HMAC-JWT erzeugen

Erzeugen Sie nur HS256-, HS384- oder HS512-Tokens. Payload und Geheimnis bleiben in Web Crypto; dieses Werkzeug bietet niemals alg: none.

Generate a local HMAC JWT to view it here.

JWT inspection is not authentication

Dekodierte Claims sind lesbare Base64URL-Daten, aber kein Vertrauensnachweis. Prüfen Sie Algorithmus, Ablaufzeit, vorgesehenen Issuer und Audience und verifizieren Sie die Signatur mit einem vertrauenswürdigen Schlüssel oder Geheimnis.

Ein JWT lesen und prüfen

Diese Seite zerlegt ein kompaktes JWT in Header, Payload und Signatur, zeigt die dekodierten Claims und prüft die Signatur, wenn das Token HMAC-signiert ist und Sie das Secret eingeben. Außerdem erzeugt sie kurzlebige HS256-, HS384- oder HS512-Token aus einer Payload, die Sie selbst schreiben.

Dekodieren und Prüfen sind bewusst zwei Schritte. Den Payload eines JWT kann jeder ohne Schlüssel lesen, und eine gültige Signatur belegt nur, dass das Token mit diesem Schlüssel signiert wurde; ob es abgelaufen ist, für Ihren Dienst ausgestellt wurde oder etwas erlaubt, sagt sie nicht.

  1. Fügen Sie das Token im Format header.payload.signature in das Token-Feld ein und klicken Sie auf Token prüfen – oder auf Beispiel laden für ein signiertes Muster.
  2. Lesen Sie zuerst den dekodierten Header (Algorithmus, Typ, kid), dann den dekodierten Payload. Die Claim-Leiste zeigt Algorithmus, Ablauf, Nicht vor und Aussteller vor dem rohen JSON.
  3. Für ein HMAC-Token wählen Sie unter Algorithmus HS256, HS384 oder HS512, geben das gemeinsame Secret ein und klicken auf Signatur prüfen.
  4. Für ein Test-Token wählen Sie den Algorithmus, fügen ein JSON-Objekt als Payload ein, setzen optional Ablauf in Minuten und den iat-Claim und klicken dann auf Lokales JWT erzeugen.
  5. Mit Header kopieren oder Payload kopieren übernehmen Sie das dekodierte JSON; mit Erzeugtes Token prüfen schicken Sie ein frisch erzeugtes Token zurück in den Inspektor.

Aufbau, Algorithmen und Claims eines JWT

Was die drei Teile enthalten

Der Header ist Base64URL-kodiertes JSON und nennt normalerweise alg und typ, manchmal eine kid, die dem Prüfer sagt, welcher Schlüssel gehört. Der Payload ist die Claim-Menge: registrierte Claims wie iss, sub, aud, exp, nbf, iat und jti plus die privaten Claims des Ausstellers. Die Signatur ist der Algorithmus über die ASCII-Zeichenkette base64url(header) + "." + base64url(payload) mit dem Schlüssel.

Base64URL ist das normale Base64-Alphabet mit - und _ statt + und / und ohne Auffüllzeichen. Deshalb passt ein Token ohne Escaping in eine URL, ein Cookie oder einen Authorization-Header – und deshalb zerstört handisches Zusammensetzen meist die Signatur.

Welche Algorithmen diese Seite prüfen kann

Nur die HMAC-Familie: HS256, HS384 und HS512, weil ein gemeinsames Secret zum Nachrechnen genügt. RS256, PS256, ES256 und EdDSA signieren mit privatem und prüfen mit öffentlichem Schlüssel; hier lassen sie sich dekodieren, aber nicht prüfen – dafür brauchen Sie die öffentliche JWK des Ausstellers. Bei einem RS256-Token bleibt die Schaltfläche Signatur prüfen deaktiviert, und der Hinweis erklärt warum.

Ein Token, das alg als none angibt, wird rot markiert: Es darf nie akzeptiert werden, und ein Prüfer sollte sich nie auf den im Token genannten Algorithmus verlassen, ohne ihn gegen eine Erlaubnisliste zu prüfen. HS256 für RS256 einzusetzen und mit dem öffentlichen Schlüssel wie mit einem HMAC-Secret zu signieren, ist ein bekannter Angriff auf nachlässige Bibliotheken.

Claims, die vor dem Akzeptieren zu prüfen sind

exp muss in der Zukunft, nbf in der Vergangenheit liegen, jeweils in Sekunden seit der Unix-Epoche und mit etwas Toleranz zwischen Uhren. iat sollte plausibel und nicht in der Zukunft sein. iss und aud müssen zu Ihrem Dienst passen, sonst wird ein für eine andere Anwendung ausgestelltes Token akzeptiert.

Eine bestätigte Signatur ist keine Berechtigung. Rollen, Scopes und Mandantenkennungen stecken in privaten Claims, und der Claim-Satz eines JWT ist signiert, nicht verschlüsselt: Legen Sie kein Geheimnis in eine Payload, die Sie dem Inhaber des Tokens nicht zeigen würden.

Fragen zu Signatur und Claims eines JWT

Ist es sicher, ein Token hier einzugeben?

Dekodierung und HMAC-Prüfung laufen in Ihrem Browser, das Token wird also nicht hochgeladen. Trotzdem bleibt die sichere Gewohnheit, mit Wegwerf-Token zu testen: ein Produktions-Refresh-Token oder eine langlebige Zugangsdaten sollten in keine Webseite eingefügt werden, auch nicht in diese.

Warum schlägt die Prüfung meines RS256- oder ES256-Tokens fehl?

Diese Verfahren sind asymmetrisch, und diese Seite rechnet nur HMAC-Signaturen nach. Das Token lässt sich weiterhin dekodieren und seine Claims lesen, doch zum Prüfen braucht man den öffentlichen Schlüssel des Ausstellers und eine JWA-fähige Bibliothek – das kann eine Browserseite mit nur einem gemeinsamen Secret nicht korrekt leisten.

Die Signatur gilt als ungültig. Was heißt das?

Entweder ist das Secret falsch, oder der gewählte Algorithmus passt nicht zu dem im Header, oder der Token-Text wurde nach dem Signieren verändert. Payload bearbeiten, neu einrücken und von Hand neu kodieren führt zum gleichen Ergebnis, weil die Signatur die exakten Originalbytes abdeckt.

Warum kann ich den Payload ohne Schlüssel lesen?

Weil ein JWT signiert und nicht verschlüsselt ist. Base64URL ist eine Kodierung, und wer das Token hat, dekodiert Header und Payload ganz ohne Schlüssel. Sind die Claims selbst sensibel, nutzen Sie JWE, das den Inhalt für einen Empfänger verschlüsselt.

Worin unterscheiden sich JWT, JWS und JWE?

JWT ist die Claim-Menge, also die Daten. JWS ist die signierte Serialisierung, die das kompakte Drei-Teile-Token dieser Seite erzeugt. JWE ist die verschlüsselte Serialisierung, bei der sich der Payload ohne Schlüssel nicht lesen lässt und die Struktur fünf statt drei Teile hat.

Wie lange sollte ein erzeugtes Test-Token gelten?

Minuten statt Stunden. Setzen Sie Ablauf in Minuten klein, damit ein geleaktes Test-Token schnell ungültig wird, und bedenken Sie: Diese Seite signiert mit dem lokal eingegebenen Secret, das Token gilt also nur in Systemen mit demselben Secret.

Zuletzt verwendet: