Was das Tool macht
Ein JSON Web Token (JWT, RFC 7519) ist ein kompakter, URL-sicherer String aus drei durch Punkte getrennten Teilen: einem Header, der den Signaturalgorithmus nennt, einem Payload mit Claims und einer Signatur über die ersten beiden Teile. APIs nutzen JWTs als Bearer-Tokens, Identity-Provider als ID-Tokens.
Dieses Tool erstellt und signiert ein Token aus einem JSON-Payload. Unterstützt werden:
- HS256, HS384, HS512: HMAC mit gemeinsamem Secret, als Text oder Base64.
- RS256, RS384, RS512 und PS256, PS384, PS512: RSA-Signaturen mit PEM-Privatschlüssel.
- ES256, ES384, ES512: ECDSA-Signaturen mit EC-Privatschlüssel.
So funktioniert es
- Schreiben Sie den Payload als JSON-Objekt oder klicken Sie auf Beispiel.
- Wählen Sie den Algorithmus und geben Sie oben im Eingabefeld das Secret ein oder fügen Sie den PEM-Privatschlüssel ein.
- Setzen Sie bei Bedarf iat auf jetzt, fügen Sie ein Ablaufdatum (exp) oder zusätzliche Header-Felder wie eine Schlüssel-ID hinzu.
- Kopieren Sie das Token aus der Ausgabe. Im JWT-Decoder können Sie es prüfen.
Beispiel
Mit dem Secret your-256-bit-secret ergibt der folgende Payload, mit HS256 signiert, das bekannte Beispieltoken von jwt.io:
{"sub":"1234567890","name":"John Doe","iat":1516239022}
Der Header wird immer als {"alg":"HS256","typ":"JWT"} geschrieben, gefolgt von zusätzlichen Feldern; alg folgt stets dem gewählten Algorithmus.
Gute Praxis
Halten Sie Tokens mit einem exp-Claim kurzlebig und setzen Sie iss und aud, damit ein Token für einen Dienst nicht bei einem anderen wiederverwendet werden kann. Prüfen Sie die Signatur auf dem Server immer mit einer expliziten Liste erlaubter Algorithmen und lehnen Sie none ab. HMAC-Secrets sollten lang und zufällig sein, mindestens so lang wie die Hash-Ausgabe (32 Bytes für HS256).
FAQ
› Welchen Algorithmus soll ich wählen?
Den, den Ihr Server prüft. HS256 nutzt ein gemeinsames Secret und ist innerhalb eines Systems üblich. RS256 und ES256 signieren mit einem privaten Schlüssel, und jeder kann mit dem öffentlichen Schlüssel prüfen – passend für Tokens, die mehrere Dienste kontrollieren. ES256 erzeugt deutlich kürzere Signaturen als RS256.
› Welche Formate für private Schlüssel werden akzeptiert?
PEM-Schlüssel in PKCS#8 (BEGIN PRIVATE KEY), PKCS#1 RSA (BEGIN RSA PRIVATE KEY) und SEC1 EC (BEGIN EC PRIVATE KEY). Verschlüsselte Schlüssel müssen vorher ohne Passphrase exportiert werden. Für ES256, ES384 und ES512 muss der Schlüssel auf der Kurve P-256, P-384 bzw. P-521 liegen.
› Ist der Payload eines JWT geheim?
Nein. Header und Payload sind nur Base64URL-kodiert, und jeder mit dem Token kann sie lesen. Die Signatur verhindert Änderungen, nicht das Lesen. Legen Sie niemals Passwörter oder andere Geheimnisse in einen JWT-Payload.
› Wird mein Secret oder privater Schlüssel gespeichert oder gesendet?
Nein. Das Signieren läuft in Ihrem Browser über die Web Crypto API. Secret oder Schlüssel liegen nur im Speicher dieser Seite: Sie werden nicht gespeichert, nicht in die Adresszeile geschrieben und nicht in Teilen-Links aufgenommen. Fügen Sie trotzdem keine Produktivschlüssel in Webseiten ein, die Sie nicht kontrollieren.