CalcMint

Décodeur et générateur de JWT

Collez un JSON Web Token pour lire son header et ses claims, voir quand il expire et vérifier sa signature. Votre jeton ne quitte pas cette page.

Décodeur et générateur de JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxODkzNDU2MDAwfQ.vgHtS5dyaSUxDoPpQPoyaFVrg5I8B0EV9R0_Ah59pxU

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1767225600,
  "exp": 1893456000
}
Algorithme (alg)
HS256
Type (typ)
JWT
Sujet (sub)
1234567890
Émis le (iat)
jeudi 1 janvier 2026 à 09:00:00 UTC+9
Expire le (exp)
mardi 1 janvier 2030 à 09:00:00 UTC+9
Intégrer ce calculateur à votre site

Copiez le code et collez-le dans le HTML de votre page. C'est gratuit ; merci de garder le lien vers la source.

Comment est construit un JWT

Un JSON Web Token (RFC 7519) est fait de trois chaînes Base64URL séparées par des points : header.payload.signature. Le header indique l'algorithme de signature, le payload contient les claims (ID utilisateur, rôles, expiration) et la signature est calculée sur les deux premières parties.

En HS256, la signature est un HMAC avec un secret partagé : le même secret signe et vérifie. RS256, PS256 et ES256 signent avec une clé privée et vérifient avec une clé publique, ce qui permet à de nombreux services de contrôler les jetons sans pouvoir en créer.

Vérifier un jeton en toute sécurité

  • Vérifiez toujours la signature côté serveur et refusez alg "none".
  • Imposez l'algorithme attendu au lieu de laisser le header choisir.
  • Contrôlez exp, nbf, iss et aud, avec une ou deux minutes de tolérance d'horloge.
  • Gardez des jetons de courte durée et traitez-les comme des mots de passe : ce décodeur fonctionne hors ligne, mais beaucoup d'autres envoient le jeton à un serveur.

Claims JWT enregistrés (RFC 7519)

ClaimNomSignification
issÉmetteurQui a créé et signé le jeton
subSujetQui le jeton concerne, souvent un ID utilisateur
audAudienceÀ qui le jeton est destiné
expExpirationSecondes depuis 1970 après lesquelles il doit être refusé
nbfPas avantSecondes depuis 1970 avant lesquelles il doit être refusé
iatÉmis leDate de création
jtiID du JWTIdentifiant unique contre la réutilisation

Questions fréquentes

Tout le monde peut-il lire un JWT ?

Oui. Le header et le payload sont seulement encodés en Base64URL, pas chiffrés : quiconque a le jeton peut les lire. Ne mettez jamais de mot de passe ni de secret dans le payload.

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

Non. Décoder ne fait que lire le contenu. Seule la vérification de la signature avec le bon secret ou la bonne clé publique prouve qu'il n'a été ni forgé ni modifié, et le serveur doit aussi contrôler exp, nbf et aud.

Pourquoi mon jeton est-il expiré alors qu'il vient d'être émis ?

exp, iat et nbf sont en secondes depuis 1970, pas en millisecondes. Utiliser Date.now() de JavaScript sans diviser par 1000 repousse la date de plusieurs millénaires, et les écarts d'horloge entre serveurs peuvent faire paraître un jeton neuf expiré ou pas encore valide.

Ce que je colle est-il envoyé à un serveur ?

Non. Cet outil fonctionne entièrement dans votre navigateur, avec JavaScript et l'API Web Crypto intégrée. Rien de ce que vous tapez, collez ou ouvrez n'est envoyé ni conservé.

Calculateurs associés