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

  1. Il coupe le jeton sur les points et exige exactement 3 segments ; un JWE chiffré à 5 segments est refusé.
  2. Il remplace - et _ par + et /, complète avec des = puis décode en UTF-8.
  3. Il analyse l'en-tête et le payload avec JSON.parse et affiche l'algorithme (alg) et le type (typ).
  4. 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.