JWT-HMAC-Signatur
JWT = Base64URL(Header) + '.' + Base64URL(Payload) + '.' + Base64URL(HMAC(Geheimnis, Signatureingabe))
Erzeuge ein HMAC-signiertes JSON Web Token für Tests: Gib Header und Payload als JSON ein, wähle HS256, HS384 oder HS512 und dein Secret; alg und typ werden automatisch gesetzt.
Für Tests und Entwicklung: Verwende kein Produktionsgeheimnis auf einem geteilten oder nicht vertrauenswürdigen Gerät.
Der JWT-Encoder baut aus einem Header, einer JSON-Payload und einem gemeinsamen Secret ein HMAC-signiertes Token. Er ist für Entwickler und Tester gedacht, die ein maßgeschneidertes Token brauchen, um eine lokale API aufzurufen, einen automatisierten Test zu schreiben oder einen Grenzfall nachzustellen (abgelaufenes Token, fehlende Rolle). Er dient der Entwicklung und dem Testen, nicht der Ausgabe von Produktions-Tokens.
Das Tool prüft, ob Header und Payload gültige JSON-Objekte sind, und setzt dann im Header alg auf den gewählten Algorithmus und typ auf JWT. Jedes Objekt wird serialisiert und Base64URL-kodiert (RFC 4648, ohne Auffüllzeichen =), die beiden Segmente werden mit einem Punkt verbunden. So wird aus dem Header {"alg":"HS256","typ":"JWT"} der Wert eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
Die Signatur ist ein HMAC über den String „Header.Payload“ mit SHA-256, SHA-384 oder SHA-512 je nach Algorithmus (RFC 7518, Abschnitt 3.2), berechnet mit der Web Crypto API. Das Base64URL-kodierte Ergebnis bildet das dritte Segment des JWT (RFC 7519). RFC 7518 verlangt einen Schlüssel, der mindestens so lang ist wie die Hash-Ausgabe: 256 Bit (32 Byte) für HS256, 384 Bit für HS384 und 512 Bit für HS512. Die Zeitangaben exp, iat und nbf in der Payload müssen Unix-Sekunden sein, zum Beispiel "exp": 1767225600 für den 1. Januar 2026 um 00:00 UTC.
Bearbeite die beiden vorausgefüllten JSON-Felder oder importiere eine .json-Datei. Ergänze deine Claims: sub, iss, aud, exp, Rollen oder eigene Felder.
Wähle HS256, HS384 oder HS512 und gib das gemeinsame Secret ein. Die Header-Felder alg und typ werden automatisch aktualisiert.
Klicke auf Generieren: Das signierte Token erscheint und lässt sich kopieren. Ist das JSON ungültig oder das Secret leer, wird ein Fehler angezeigt.
JWT = Base64URL(Header) + '.' + Base64URL(Payload) + '.' + Base64URL(HMAC(Geheimnis, Signatureingabe))
Erstelle ein Token, das mit dem Secret deiner Entwicklungsumgebung signiert ist, und rufe damit eine geschützte Route per curl oder Postman auf, ohne den ganzen Login-Ablauf zu durchlaufen.
Setze exp in die Vergangenheit oder entferne den Claim roles, um zu prüfen, ob deine Middleware in diesen Grenzfällen wirklich 401 oder 403 zurückgibt.
Erzeuge stabile Tokens für deine Integrationstests und kontrolliere sie anschließend mit dem JWT-Verifizierer, damit Secret und Claims zu dem passen, was der Server erwartet.
Eingabe
Algorithmus: HS256; JSON-Header: {"alg":"HS256","typ":"JWT"}; JSON-Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Geheimnis: testschluesselErgebnis
Das Ergebnis ist ein JWT mit drei durch Punkte getrennten Base64URL-Abschnitten. Die Signatur verwendet HMAC-SHA256.Ein JWT entsteht, indem man einen JSON-Header und eine JSON-Payload Base64URL-kodiert und den String „Header.Payload“ mit dem gewählten Algorithmus signiert. Hier gibst du einfach beide Objekte und ein Secret ein und klickst auf Generieren. In Produktion übernimmt das dein Authentifizierungsserver oder eine Bibliothek wie jose oder jsonwebtoken.
RFC 7518 verlangt für HS256 einen Schlüssel von mindestens 256 Bit, also 32 Byte; für HS384 sind es 48 Byte und für HS512 64 Byte. Ein zufälliges Secret dieser Größe, etwa aus einem Generator für sichere Tokens, verhindert Wörterbuchangriffe auf die Signatur.
Diese HMAC-Algorithmen brauchen nur ein gemeinsames Secret, was für Test-Tokens reicht. RS256 oder ES256 würden einen privaten Schlüssel erfordern, der nicht in einem Web-Tool verarbeitet werden sollte. Wenn mehrere Parteien deine Tokens prüfen, aber nicht ausstellen dürfen, nutze auf dem Server einen asymmetrischen Algorithmus.
Ergänze in der Payload den Claim exp mit einem Unix-Zeitstempel in Sekunden, zum Beispiel "exp": 1767225600. Mit einem Timestamp-Konverter berechnest du diesen Wert aus einem Datum. Denk auch an iat für den Ausstellungszeitpunkt.
Nein, das Tool ist für Entwicklung und Tests gedacht. In Produktion müssen Tokens von einem Server ausgestellt werden, der das Secret vor Nutzern schützt, kurze Laufzeiten durchsetzt und die Schlüsselrotation verwaltet.
Nein. Kodierung und HMAC-Signatur werden in deinem Browser mit der Web Crypto API berechnet, ohne Netzwerkanfrage. Gib trotzdem kein Produktions-Secret ein, denn wer es kennt, kann Tokens signieren, die deine API akzeptiert.
Empfohlener Workflow
Entdecke Werkzeuge, die sinnvoll vor, nach oder ergänzend zu diesem Werkzeug eingesetzt werden können.
Dekodiere ein JWT und lies Header, Payload, Claims und Ablaufdaten.
Prüfe die Signatur eines JWT mit einem HMAC-Secret oder einem öffentlichen Schlüssel als JWK, JWKS oder PEM und kontrolliere exp, nbf, iss und aud.
Lerne, was ein JWT enthält, warum Dekodieren keine Verifikation ist und wie Claims wie exp, nbf, iss und aud funktionieren.
Verstehe das Zusammenspiel von OAuth 2.0, PKCE, JWT, JWK und JWKS bei Autorisierung, Tokens, Schlüsseln und Verifizierung.
Verstehe, wann Verschlüsselung, Hashing, HMAC oder PBKDF2 für Vertraulichkeit, Integrität, Authentifizierung und Passwörter eingesetzt werden.
Verstehe HSTS, CSP, X-Content-Type-Options, Referrer-Policy und Permissions-Policy und prüfe die tatsächlich gesendeten Header.