JWT-Generator und -Prüfer
JWT erstellen und prüfen mit HS256, RS256, PS256, ES256 oder EdDSA: Claims bearbeiten, exp und iat setzen und Signaturen lokal im Browser verifizieren.
Schlüssel und Tokens sind Geheimnisse. Alles wird lokal mit der Web-Crypto-API Ihres Browsers signiert und geprüft: Nichts wird hochgeladen.
Signiertes JWT erstellen
Dieser Browser unterstützt Ed25519 in Web Crypto nicht, daher ist EdDSA nicht verfügbar.
Testschlüssel werden in Ihrem Browser erzeugt und unten eingetragen. Behalten Sie den privaten Schlüssel bzw. das Secret für sich; weitergeben dürfen Sie nur den öffentlichen Schlüssel.
JWT prüfen
So erstellen Sie ein signiertes JWT
- Wählen Sie den „Algorithmus“: HS256/384/512 (gemeinsames Secret), RS256/384/512 oder PS256/384/512 (RSA), ES256/384/512 (ECDSA auf P-256, P-384 oder P-521) oder EdDSA (Ed25519, sofern Ihr Browser es unterstützt).
- Bearbeiten Sie „Header (JSON)“ und „Payload (JSON-Claims)“. Das Feld
algfolgt immer dem gewählten Algorithmus,typist standardmäßigJWT. - Fügen Sie mit den Schaltflächen für Zeit-Claims Datumswerte hinzu: „iat = jetzt“, „nbf = jetzt“ oder wählen Sie eine Gültigkeitsdauer wie „in 1 Stunde“ und klicken Sie auf „exp setzen“. Die Werte sind NumericDates, also Sekunden seit dem 1. Januar 1970 UTC.
- Geben Sie das „Secret“ ein (bei HS-Algorithmen, als Text oder Base64/Base64url unter „Secret-Format“) oder den „Privaten Schlüssel (PEM oder JWK)“. Noch keinen Schlüssel? Klicken Sie auf „Testschlüssel erzeugen“.
- Klicken Sie auf „Token signieren“ und dann auf „Kopieren“ – oder auf „Dieses Token prüfen“, um es sofort zu testen.
So prüfen Sie ein JWT
- Fügen Sie das Token unter „Zu prüfendes Token“ ein.
- Wählen Sie den „Erwarteten Algorithmus“. Mit „Aus dem Token-Header (nie none)“ wird akzeptiert, was im Header steht, außer
none. Wählen Sie einen bestimmten Algorithmus, lehnt das Tool jedes anders signierte Token ab – so wie es ein echter Server tun sollte. - Geben Sie das Secret ein oder den „Öffentlichen Schlüssel (PEM oder JWK)“: einen PEM-Block
PUBLIC KEY,RSA PUBLIC KEYoderCERTIFICATE, ein JWK oder ein JWK Set (verwendet wird der Schlüssel, dessenkidzum Header passt). - Legen Sie bei Bedarf eine „Uhrentoleranz (Sekunden)“ fest, um kleine Zeitabweichungen zu tolerieren, und klicken Sie auf „Token prüfen“.
Das Ergebnis zeigt, ob die Signatur gültig ist, und prüft anschließend exp (Ablaufzeit) und nbf (nicht vor) gegen die aktuelle Uhrzeit Ihres Computers. Ein Token mit korrekter Signatur, aber einem Ablaufdatum in der Vergangenheit wird als abgelaufen gemeldet, nicht als gültig.
Schlüssel und Formate
Zum Signieren akzeptiert das Tool PKCS#8-Blöcke PRIVATE KEY, PKCS#1-Blöcke RSA PRIVATE KEY und SEC1-Blöcke EC PRIVATE KEY (intern in PKCS#8 umgewandelt) sowie private JWKs. Passwortgeschützte Schlüssel müssen zuerst ohne Passwort exportiert werden. „Testschlüssel erzeugen“ erstellt ein zufälliges Secret in Hash-Größe für HS-Algorithmen, ein 2048-Bit-RSA-Schlüsselpaar für RS und PS, ein Paar auf der passenden Kurve für ES oder ein Ed25519-Paar. Sie erhalten die Schlüssel als PEM und JWK, und sie werden auf beiden Seiten eingetragen, sodass ein Hin-und-zurück-Test sofort klappt.
Die Signaturen folgen RFC 7515 und RFC 7518: RSA-PSS verwendet einen Salt von der Länge des Hashs, und ECDSA-Signaturen sind die rohe Verkettung r||s. Die Implementierung reproduziert das HS256-Beispiel aus RFC 7515, Anhang A.1.
Sicherheitshinweise
- Alles läuft in Ihrem Browser mit der Web-Crypto-API. Weder Tokens noch Schlüssel werden irgendwohin gesendet – verwenden Sie trotzdem lieber Testschlüssel als Produktions-Secrets.
alg: nonewird nie signiert und nie akzeptiert.- HMAC-Secrets sollten mindestens so lang sein wie der Hash (32 Byte bei HS256). Ein kürzeres Secret löst eine Warnung aus.
- Eine Signatur belegt Integrität und Herkunft, nicht aber, dass die Claims angemessen sind: Server müssen zusätzlich
iss,audund die Scopes prüfen.
Häufige Fragen
Was ist der Unterschied zwischen HS256 und RS256?
HS256 verwendet ein einziges gemeinsames Secret zum Signieren und zum Prüfen – jede prüfende Stelle könnte also auch Tokens fälschen. RS256 (ebenso PS256, ES256 und EdDSA) signiert mit einem privaten Schlüssel und prüft mit einem öffentlichen Schlüssel, den man gefahrlos veröffentlichen kann.
Warum erscheint trotz gültiger Signatur ein Fehler?
Weil das Token außerhalb seines Gültigkeitszeitraums liegt: exp liegt in der Vergangenheit oder nbf in der Zukunft. Signaturprüfung und Zeitprüfung werden getrennt gemeldet.
Warum wird alg „none“ abgelehnt?
Ein nicht signiertes Token kann jeder erstellen. Dass solche Tokens akzeptiert wurden, war eine klassische Schwachstelle von JWT-Bibliotheken. Dieses Tool lehnt sie deshalb sowohl beim Signieren als auch beim Prüfen ab.
Kann ich meinen eigenen RSA- oder EC-Schlüssel verwenden?
Ja. Fügen Sie zum Signieren den privaten Schlüssel als PEM oder JWK ein und zum Prüfen den öffentlichen Schlüssel. Das Tool kontrolliert, ob Schlüsseltyp und Kurve zum gewählten Algorithmus passen.
Warum ist EdDSA deaktiviert?
Ihr Browser unterstützt Ed25519 in Web Crypto noch nicht. Aktuelle Versionen von Chrome, Edge, Firefox und Safari tun es.
Ähnliche Tools
- JWT-Decoder JWT dekodieren: Header und Payload lesen, exp, iat und nbf als Datum anzeigen und HS256-, RS256-, PS256-, ES256- oder EdDSA-Signaturen lokal im Browser prüfen.
- HMAC-Generator HMAC-SHA1, SHA-256, SHA-384 oder SHA-512 mit Text-, Hex- oder Base64-Schlüssel berechnen, als Hex und Base64 ausgeben und Webhook-Signaturen im Browser prüfen.
- Unix-Timestamp-Umrechner Unix-Timestamps in Sekunden oder Millisekunden in lesbare Daten umrechnen – Ortszeit, UTC und ISO 8601 – und jedes Datum zurück in Epoch-Zeit verwandeln.
- JSON-Formatierer und -Validator Kostenloser JSON-Formatierer und Validator: JSON im Browser formatieren, minifizieren und prüfen – Syntaxfehler mit Zeile und Spalte.