Encodage

JWT Encoder/Decoder

Encodage et décodage de tokens JWT — en-tête, payload, signature HMAC et champs standards.

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.

Article sur cet outil: JWT : structure du token et ce que signifie « décoder » un JWT

Questions fréquentes

Décoder un JWT prouve-t-il qu'il est authentique ?

Non. Décoder un JWT révèle simplement le contenu de l'en-tête et du payload, encodés en Base64 et non chiffrés. Sans vérifier la signature avec la bonne clé secrète ou publique, rien ne garantit que le token n'a pas été modifié ou forgé.

Comment fonctionne la structure d'un JWT ?

Un JWT est composé de trois parties séparées par des points : l'en-tête (algorithme et type), le payload (les claims comme iss, sub, exp) et la signature, calculée à partir des deux premières parties et d'un secret ou d'une clé privée.

Mes tokens ou secrets sont-ils envoyés sur un serveur ?

Non, le décodage, l'encodage et la signature s'effectuent entièrement dans le navigateur. Aucun token ni secret n'est transmis à un serveur.

Qu'est-ce que l'attaque par substitution de l'algorithme en "none" ?

Si le backend fait naïvement confiance au champ alg de l'en-tête du token, un attaquant peut le remplacer par none, retirer la signature — et un token avec des données arbitraires passera la vérification. Les bibliothèques robustes exigent de préciser explicitement l'algorithme attendu lors de la vérification.

Pourquoi éviter de stocker un JWT dans localStorage pour des sessions sensibles ?

localStorage est accessible à n'importe quel code JavaScript de la page, donc vulnérable au XSS — un script malveillant peut voler le token. Pour des tokens de session, un cookie httpOnly, inaccessible au JavaScript, est plus sûr.

Articles : Encodage

Base64 : à quoi sert l'encodage et comment il fonctionne

Comment Base64 transforme des données binaires en texte ASCII, et quand c'est réellement utile.

Base32 : en quoi il diffère de Base64 et quand il est plus pratique

L'alphabet de Base32, insensible à la casse, et les cas où il est plus pratique que Base64.

URL Encode/Decode : le percent-encoding dans les liens

Comment les caractères spéciaux d'une URL et de ses paramètres deviennent des séquences %XX.

HTML Entities : afficher des caractères spéciaux en toute sécurité

Pourquoi les caractères < > & doivent être échappés, et comment cela évite de casser le balisage.

Unicode Escape : que signifient les séquences \uXXXX

D'où viennent les séquences du type \u0041 dans le JSON et les chaînes JS, et ce qu'elles signifient.

ROT13 et le chiffre de César : une simple substitution de caractères

Pourquoi un décalage de 13 lettres rend ROT13 auto-inverse, et pourquoi on l'utilise encore aujourd'hui.

Punycode : comment les domaines internationalisés fonctionnent dans le DNS

Comment un domaine avec des caractères non latins devient une forme ASCII avec le préfixe xn--.

Le morse : comment le texte devient des points et des traits

Le principe de l'encodage des lettres en points et traits, et où le morse est encore utilisé aujourd'hui.

Data URI : quand intégrer une image directement dans le code

Comment un Data URI intègre le contenu d'un fichier directement en HTML ou CSS, et quand cela en vaut la peine.

Gzip + Base64 : compresser des données pour les transmettre en texte

Pourquoi des données binaires compressées sont aussi encodées en Base64 avant d'être placées dans un champ texte.

XML Entities : échapper les caractères dans les documents XML

Les cinq entités XML obligatoires, sans lesquelles le document se casse à l'analyse.