Kodierung

JWT Encoder/Decoder

Kodierung und Dekodierung von JWT-Tokens — Header, Payload, HMAC-Signatur und Standardfelder.

A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.

Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.

How to use it

Common uses

Things to keep in mind

A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.

The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.

Artikel zu diesem Tool: JWT: Aufbau eines Tokens und was „Dekodieren" eines JWT bedeutet

Häufig gestellte Fragen

Beweist das Dekodieren eines JWT, dass es authentisch ist?

Nein. Beim reinen Dekodieren werden Header und Payload nur lesbar gemacht, ohne die Signatur zu prüfen. Ein Token ist erst dann als echt bestätigt, wenn die Signatur mit dem richtigen Secret oder öffentlichen Schlüssel verifiziert wurde.

Verlässt mein Secret oder Token diesen Browser?

Nein, das gesamte Kodieren, Dekodieren und Signieren läuft lokal im Browser über die Web Crypto API. Es wird nichts an einen Server gesendet.

Warum ist beim Signieren manchmal HTTPS erforderlich?

Signierte Beispiele (alle Algorithmen außer none) nutzen die Web Crypto API, die aus Sicherheitsgründen nur in einem sicheren Kontext (HTTPS oder localhost) verfügbar ist.

Was ist die Angriffstechnik mit der Algorithmus-Verwechslung auf "none"?

Vertraut ein Backend naiv dem Feld alg aus dem Header des Tokens, kann ein Angreifer es auf none setzen, die Signatur entfernen – und ein Token mit beliebigen Daten besteht die Prüfung. Zuverlässige Bibliotheken verlangen bei der Verifizierung die explizite Angabe des erwarteten Algorithmus.

Warum sollte man JWT nicht in localStorage für sensible Sitzungen speichern?

localStorage ist für jeden JavaScript-Code auf der Seite zugänglich und damit anfällig für XSS – ein schädliches Skript kann den Token stehlen. Für Session-Tokens sind httpOnly-Cookies sicherer, da sie für JavaScript nicht zugänglich sind.

Artikel: Kodierung

Base64: wozu Kodierung dient und wie sie funktioniert

Wie Base64 binäre Daten in ASCII-Text verwandelt und wann das wirklich gebraucht wird.

Base32: der Unterschied zu Base64 und wann es praktischer ist

Das case-insensitive Alphabet von Base32 und Fälle, in denen es praktischer ist als Base64.

URL Encode/Decode: Percent-Encoding in Links

Wie Sonderzeichen in Adressen und Query-Parametern zu %XX-Sequenzen werden.

HTML Entities: Sonderzeichen sicher auf einer Seite ausgeben

Warum die Zeichen < > & escapt werden müssen und wie das kaputtes Markup verhindert.

Unicode Escape: was \uXXXX-Sequenzen bedeuten

Woher Sequenzen wie \u0041 in JSON und JS-Strings kommen und was sie bedeuten.

ROT13 und die Caesar-Verschlüsselung: einfache Zeichensubstitution

Warum eine Verschiebung um 13 Buchstaben ROT13 selbstinvers macht und wozu man es heute noch nutzt.

Punycode: wie internationalisierte Domains im DNS funktionieren

Wie eine Domain mit nicht-lateinischen Zeichen zu einer ASCII-Form mit dem Präfix xn-- wird.

Morsecode: wie Text zu Punkten und Strichen wird

Das Prinzip der Kodierung von Buchstaben als Punkte und Striche, und wo Morsecode heute noch genutzt wird.

Data URI: wann Bilder direkt in den Code einbetten

Wie ein Data-URI den Inhalt einer Datei direkt in HTML oder CSS einbettet, und wann sich das lohnt.

Gzip + Base64: Daten komprimieren für die Übertragung als Text

Warum komprimierte Binärdaten zusätzlich Base64-kodiert werden, bevor sie in ein Textfeld kommen.

XML Entities: Zeichen in XML-Dokumenten escapen

Die fünf Pflicht-Entities von XML, ohne die das Dokument beim Parsen bricht.