Cet outil décode uniquement l'en-tête et la charge utile d'un JWT — il ne vérifie pas la signature. Un token décodé peut néanmoins être expiré, falsifié ou invalide. Ne faites jamais confiance au contenu d'un JWT sans vérification côté serveur.
Traitement 100% local — le token est entièrement décodé dans votre navigateur et n'est jamais envoyé où que ce soit.
Émis le (iat)-
Expire le (exp)-
À propos du JWT (JSON Web Token)
Un JWT est un token compact et sûr pour les URL, composé de trois parties encodées en base64url séparées par des points : un en-tête décrivant l'algorithme de signature, une charge utile contenant des claims (données), et une signature vérifiant que le token n'a pas été altéré. Cet outil décode l'en-tête et la charge utile en JSON lisible.
Comme l'en-tête et la charge utile sont seulement encodés en base64url, pas chiffrés, n'importe qui peut les décoder et les lire sans clé secrète — c'est voulu. La signature d'un JWT protège contre la falsification, pas contre la lisibilité du contenu, donc un décodeur seul ne peut jamais confirmer qu'un token est réellement valide.
Comment décoder un JWT et que signifient exp/iat ?
Un JWT (JSON Web Token) est composé de trois parties encodées en base64url et reliées par des points : header.payload.signature. Pour le lire, découpez la chaîne aux points, décodez en base64url l'en-tête et le payload, puis analysez chacun comme du JSON — aucune clé secrète n'est nécessaire pour décoder, seulement pour vérifier la signature. Les revendications iat (émis le) et exp (expiration) du payload sont des horodatages Unix (secondes depuis le 1970-01-01), que cet outil convertit en date lisible.
Étapes pour décoder un JWT
- Collez la chaîne JWT complète (les trois parties séparées par des points) dans le champ de saisie.
- L'outil découpe le jeton à ses points et décode en base64url la première partie (en-tête) et la deuxième (payload).
- Chaque partie décodée est analysée comme du JSON et mise en forme pour être lisible.
- Si le payload contient des revendications iat ou exp, elles sont converties d'horodatages Unix en date et heure locale lisibles.
- La troisième partie (signature) reste inchangée et n'est jamais décodée ni vérifiée, car sa vérification nécessite la clé secrète ou publique de l'émetteur, que cet outil ne possède pas.
Structure du JWT et conversion d'horodatage
JWT = base64url(en-tête) + "." + base64url(payload) + "." + signature · Date lisible = new Date(secondes_exp_ou_iat x 1000)
- iat (issued at) = l'horodatage Unix, en secondes, indiquant quand le jeton a été créé
- exp (expiration) = l'horodatage Unix, en secondes, au-delà duquel le jeton doit être considéré comme expiré
- base64url = une variante de l'encodage base64 sûre pour les URL, qui remplace + et / par - et _ et omet le remplissage
Revendications courantes du payload d'un JWT
| Revendication | Signification |
|---|
| iss | Émetteur — qui a créé et signé le jeton |
| sub | Sujet — l'identité concernée par le jeton, comme un identifiant d'utilisateur |
| aud | Audience — le destinataire prévu du jeton |
| iat | Émis le — quand le jeton a été créé (horodatage Unix) |
| exp | Expiration — quand le jeton cesse d'être valide (horodatage Unix) |
Questions fréquentes
Décoder un JWT prouve-t-il qu'il est valide ou fiable ?
Non. Le décodage révèle uniquement ce que contiennent l'en-tête et le payload ; il ne dit rien sur l'authenticité de la signature, sur le fait que le jeton ait été émis par une source de confiance, ni sur une éventuelle altération. Seule la vérification de la signature avec la bonne clé secrète ou publique peut confirmer qu'un jeton est authentique.
Pourquoi n'importe qui peut-il lire le payload de mon JWT sans mot de passe ?
L'en-tête et le payload sont encodés en base64url, pas chiffrés, donc les décoder n'est qu'une transformation de texte réversible, pas une barrière de sécurité — c'est voulu, puisque les JWT sont conçus pour être lisibles par toute partie qui les reçoit. Les données sensibles ne doivent donc jamais figurer dans le payload d'un JWT.
Que se passe-t-il si l'horodatage exp d'un jeton est dans le passé ?
Un JWT dont la valeur exp est dans le passé est généralement considéré comme expiré par les systèmes qui le vérifient, et devrait être rejeté ; mais ce décodeur se contente d'afficher la date — il ne la compare pas à l'heure actuelle et ne rejette rien, cette vérification étant la responsabilité du serveur.
Pourquoi mon jeton décodé affiche-t-il une erreur ?
Une erreur signifie généralement que le texte collé n'est pas un JWT complet et bien formé — par exemple, il lui manque un segment séparé par un point, l'en-tête ou le payload n'est pas un base64url valide, ou le texte décodé n'est pas du JSON valide. Vérifiez que vous avez copié le jeton entier sans espace ni retour à la ligne superflu.
Cet outil peut-il m'aider à déboguer une API utilisant l'authentification JWT ?
Oui, c'est un usage courant pour un développeur : coller rapidement un jeton reçu d'une API pour vérifier son contenu (identifiant utilisateur, rôles, date d'expiration) sans écrire de code. Cela reste toutefois un outil de lecture seule ; pour tester réellement la validité d'un jeton côté serveur, il faut vérifier sa signature avec la bibliothèque JWT et la clé appropriées.
Cet outil décode et affiche uniquement l'en-tête et le payload ; il ne vérifie jamais la signature, ne compare pas l'expiration à l'heure actuelle et ne valide aucune revendication, donc un jeton décodé avec succès n'équivaut pas à un jeton vérifié et fiable.
Sources: RFC 7519 (JSON Web Token)
Confidentialité et sécurité
- Calcul dans le navigateur — Vos saisies sont calculées uniquement sur votre appareil et ne sont pas envoyées à un serveur utilduck.
- Connexion chiffrée — Toutes les pages sont servies en HTTPS, personne sur le réseau ne peut lire leur contenu.
- Aucun partage avec des tiers — Vos saisies ne sont transmises ni aux services d'analyse ni aux régies publicitaires.
- Aucun enregistrement — Les résultats ne sont enregistrés sur aucun serveur et aucun compte n'est requis.
Dernière mise à jour: 2026-08-17