Eazy Toolbox
Aller à l'outil

Décodeur JWT

Collez un jeton JSON Web Token pour lire son en-tête et sa charge utile. Les revendications d'horodatage sont converties en dates lisibles, et le jeton ne quitte jamais votre navigateur.

Vos données ne quittent jamais votre navigateur. Cet outil fonctionne entièrement sur votre appareil.

Paste a JWT to decode it.

Comment un JWT est structuré

Un JSON Web Token se compose de trois segments encodés en base64url et séparés par des points : en-tête, charge utile et signature. L'en-tête nomme l'algorithme de signature, la charge utile porte les revendications, et la signature prouve que les deux premiers n'ont pas été altérés.

Les deux premiers segments sont encodés, pas chiffrés. Quiconque détient le jeton peut les lire — c'est exactement ce que fait cet outil. Ne placez jamais un mot de passe, une clé d'API ou quoi que ce soit de secret dans la charge utile d'un JWT.

en-tête.charge-utile.signature

Les revendications enregistrées que vous rencontrerez

La plupart des jetons emploient une partie des noms de revendications standard définis par la RFC 7519 :

  • iss — émetteur, qui a créé le jeton.
  • sub — sujet, en général l'identifiant de l'utilisateur.
  • aud — audience, le service auquel le jeton est destiné.
  • exp — date d'expiration, sous forme de timestamp Unix en secondes.
  • nbf — pas avant ; le jeton est invalide jusqu'à cet instant.
  • iat — émis le, moment de création du jeton.
  • jti — identifiant unique du jeton, servant à empêcher le rejeu.

Cet outil ne vérifie pas les signatures

Décoder et vérifier sont deux opérations distinctes. Décoder se contente de lire la charge utile ; vérifier recalcule la signature avec le secret ou la clé publique de l'émetteur pour prouver que le jeton est authentique et intact.

La vérification n'est délibérément pas proposée ici, car elle vous obligerait à coller votre secret de signature dans une page web. Vérifiez vos jetons dans votre propre back-end, avec une bibliothèque qui contrôle l'algorithme contre une liste blanche — ne faites jamais confiance au seul champ alg de l'en-tête.

Questions fréquentes

Mon jeton est-il envoyé à un serveur ?

Non. Le décodage se déroule entièrement dans votre navigateur, sans aucune requête réseau : coller un vrai jeton ici ne l'expose à personne. Cela dit, considérez tout jeton collé quelque part comme méritant une rotation s'il est encore valide.

Cet outil peut-il vérifier la signature d’un JWT ?

Non, et c'est volontaire. La vérification exige le secret de signature ou la clé publique, et vous demander de coller un secret dans un site web serait une mauvaise pratique. Vérifiez plutôt côté serveur.

Pourquoi tout le monde peut-il lire la charge utile de mon JWT ?

Parce que base64url est un encodage, pas un chiffrement. La signature protège le jeton d'une modification, pas d'une lecture. Si une revendication doit rester confidentielle, ne la mettez pas dans le jeton — ou utilisez JWE, qui chiffre réellement la charge utile.

Que signifie exactement la revendication exp ?

C'est la date d'expiration exprimée en nombre de secondes depuis le 1er janvier 1970 UTC — des secondes, pas des millisecondes, source fréquente de bogues. Un jeton est rejeté dès que l'heure courante dépasse exp.

Que signifie « alg: none » ?

Cela déclare un jeton non signé. En accepter un constitue une vulnérabilité bien connue : un attaquant peut retirer la signature et poser alg à none pour forger n'importe quelle charge utile. Un vérificateur en production doit le rejeter sans discussion.