0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Konfiguration
Generiere und dekodieren Sie JSON-Web-Token (JWT) mit den Algorithmen HS256, HS384, HS512, RS256 und RS512. Im Modus Generieren, füllen Sie den JSON-Payload und die Geheimschlüssel aus, um den Token zu erstellen. Im Modus Lesen, fügen Sie einen vorhandenen Token hinzu, um dessen Header, Payload und die Signatur zu überprüfen.

HMAC mit SHA-256. Gemeinsame symmetrische Schlüssel. Empfohlen für den allgemeinen Einsatz.

Geheime Schlüssel
Eingang

So funktioniert es

Ein JSON Web Token (JWT) ist ein kompaktes, signiertes Token, das Informationen (Claims) zwischen zwei Parteien transportiert. Es besteht aus drei durch Punkte getrennten Teilen —Header, Payload und Signatur—, jeweils Base64URL-codiert.

Im Modus Generieren definierst du Header und Payload in JSON und signierst mit einem geheimen Schlüssel (HMAC) oder einem privaten Schlüssel (RSA/ECDSA). Im Modus Lesen fügst du ein vorhandenes Token ein, um seinen Inhalt zu prüfen und die Signatur zu verifizieren.

Der Payload ist nicht verschlüsselt: Jeder kann ihn durch Decodieren des Base64URL lesen. Die Signatur garantiert nur, dass das Token nicht verändert wurde, sie verbirgt es nicht. Speichere niemals sensible Daten in einem JWT.

Beispiele

header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
tokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cDie Signatur (dritter Teil) hängt vom Algorithmus und vom Schlüssel ab; dieses Beispiel verwendet HS256 mit dem Schlüssel "your-256-bit-secret".

Anwendungsfälle

  • Benutzer in APIs authentifizieren: Der Server stellt ein signiertes Token aus und validiert es bei jeder Anfrage, ohne eine Sitzung zu speichern.
  • Authentifizierungstokens inspizieren und debuggen, um ihre Claims (sub, exp, Rollen) und Daten zu sehen.
  • Die Signatur eines Tokens mit dem geheimen oder dem öffentlichen Schlüssel verifizieren, um zu bestätigen, dass es nicht manipuliert wurde.
  • Test-Tokens mit verschiedenen Algorithmen (HMAC, RSA, ECDSA) beim Entwickeln eines Authentifizierungsablaufs erzeugen.

Häufige Fragen

Ist der Inhalt eines JWT verschlüsselt?

Nein. Header und Payload sind nur Base64URL-codiert, was jeder decodieren kann. Die Signatur garantiert Integrität (dass nichts verändert wurde), nicht Vertraulichkeit.

Was ist der Unterschied zwischen HS256 und RS256?

HS256 verwendet einen einzigen gemeinsamen geheimen Schlüssel zum Signieren und Verifizieren (HMAC). RS256 ist asymmetrisch: Es signiert mit einem privaten Schlüssel und verifiziert mit dem öffentlichen, ideal, wenn viele Dienste validieren müssen, ohne ausstellen zu können.

Was bedeuten die Claims iat, exp und nbf?

Es sind Standard-Zeitstempel: iat (ausgestellt am), exp (läuft ab am) und nbf (nicht gültig vor). Sie werden in Sekunden seit 1970 (Unix-Epoche) angegeben.

Warum wird der Algorithmus "none" abgeraten?

Weil er ein unsigniertes Token erzeugt: Jeder kann den Payload ändern, und es wird trotzdem akzeptiert. Er ist nur für Tests nützlich, niemals in der Produktion.

Wird mein Token an einen Server gesendet?

Nein. Erzeugung, Decodierung und Verifizierung erfolgen vollständig in deinem Browser; das Token und die Schlüssel verlassen dein Gerät nie.