Décodeur JWT : lire header, payload et expiration
Collez un jeton JWT pour afficher son en-tête et son payload en JSON, les dates iat et exp et savoir s'il a expiré.
Décoder un JWT : en-tête, claims et expiration, sans signature
Un JWT (RFC 7519) se compose de trois segments encodés en Base64URL et séparés par des points : en-tête, payload et signature. L'outil décode les deux premiers en JSON, convertit les dates iat et exp et indique si le jeton est expiré ; il ne vérifie pas la signature, qui exige la clé secrète ou publique côté serveur.
Ce que fait le décodeur
- Il coupe le jeton sur les points et exige exactement 3 segments ; un JWE chiffré à 5 segments est refusé.
- Il remplace - et _ par + et /, complète avec des = puis décode en UTF-8.
- Il analyse l'en-tête et le payload avec JSON.parse et affiche l'algorithme (alg) et le type (typ).
- Il convertit iat et exp (secondes depuis le 1er janvier 1970) en date locale et compare exp à l'heure de votre appareil.
Exemple avec le jeton d'exemple
L'en-tête annonce alg HS256 et typ JWT. Le payload contient sub, name (Jean Dupont), admin, iss et deux dates : iat = 1516239022, soit le 18 janvier 2018 à 01 h 30 UTC, et exp = 1781623922, soit le 16 juin 2026 à 15 h 32 UTC. Consulté le 14 octobre 2026, le jeton est signalé Expiré depuis environ 120 jours. La signature est affichée telle quelle, sans contrôle.
Limites de sécurité
- Un jeton modifié ou forgé se décode exactement comme un vrai : un décodage réussi ne prouve rien sur son authenticité.
- Un jeton non signé (alg none, troisième segment vide) est décodé sans avertissement.
- Les claims nbf, aud et iss ne sont pas contrôlés ; seule exp donne lieu à un statut.
- Le statut d'expiration dépend de l'horloge de votre appareil.
- Le payload n'est qu'encodé, pas chiffré : n'y placez jamais de mot de passe ni de donnée sensible.
Le décodage s'exécute dans le navigateur, sans envoi du jeton.
Questions fréquentes
Le décodeur JWT vérifie-t-il la signature du jeton ?
Non. Il décode l'en-tête et le payload et affiche la signature brute, sans la contrôler. Vérifier une signature HS256 demande la clé secrète, RS256 ou ES256 la clé publique : faites-le côté serveur avec une bibliothèque JWT.
Comment savoir si un JWT est expiré ?
Le claim exp contient une date en secondes depuis le 1er janvier 1970. Le jeton d'exemple a exp = 1781623922, soit le 16 juin 2026 à 15 h 32 UTC : l'outil le marque expiré dès que l'horloge de votre appareil dépasse cette date et affiche l'écart en jours, heures et minutes.
Peut-on lire le contenu d'un JWT sans la clé ?
Oui, un JWT signé (JWS) n'est qu'encodé en Base64URL : n'importe qui peut lire ses claims. Seule la signature empêche de les modifier sans être détecté. Un JWE à 5 segments, lui, est chiffré et l'outil le refuse.
Pourquoi l'outil affiche-t-il « Format JWT invalide » ?
Le jeton doit contenir exactement trois segments séparés par des points. Une copie tronquée, des espaces, le préfixe Bearer ou un jeton chiffré à 5 segments déclenchent ce message ; un segment qui n'est pas du Base64URL contenant du JSON provoque une erreur de décodage.
L'outil est-il vraiment gratuit ?
Oui, l'intégralité des outils sur Kristools sont 100% gratuits et accessibles sans inscription.
Mes données sont-elles protégées ?
Oui. Tous les traitements sont effectués directement et en toute sécurité dans votre navigateur. Aucune donnée personnelle n'est envoyée vers nos serveurs.