Décodeur JWT
Collez un JSON Web Token et lisez son en-tête et sa charge utile en JSON formaté — avec les dates d'expiration traduites en dates lisibles. Entièrement hors ligne.
1 158 vues
Impossible de décoder — collez un JWT en trois parties séparées par des points.
La signature n'est PAS vérifiée : un décodage réussi ne signifie pas que le token est authentique.
Comment ça fonctionne
Un JSON Web Token est une chaîne compacte composée de trois parties encodées en Base64URL, séparées par des points : header.payload.signature. Base64URL est une variante de Base64 sûre pour les URL : elle remplace +// par -/_ et supprime le remplissage = final, si bien que le résultat peut figurer dans une URL ou un en-tête HTTP sans échappement. L'en-tête est un petit objet JSON qui nomme l'algorithme de signature et le type de token — typiquement {"alg":"HS256","typ":"JWT"}. La charge utile (payload) est un objet JSON de « claims » : des paires clé/valeur arbitraires décrivant qui le token représente et ce qu'il est autorisé à faire, plus quelques claims temporels enregistrés — iat (émis à), nbf (non valide avant) et exp (expiration), tous stockés en timestamps Unix. La signature est calculée sur les deux premières parties à l'aide de l'algorithme nommé dans l'en-tête et d'une clé que seul le serveur émetteur détient.
Collez un token ici et l'outil le découpe sur ses deux points, décode l'en-tête et la charge utile en Base64URL, puis affiche chacun en JSON indenté. Les valeurs exp/iat/nbf éventuelles sont en plus converties en date lisible, avec un badge indiquant en un coup d'œil si le token est actuellement expiré.
Les JWT constituent l'ossature de la plupart des authentifications modernes : tokens d'accès OAuth 2.0, tokens d'identité OpenID Connect et nombreux systèmes de session propriétaires utilisent ce format, car il permet à un serveur d'émettre un identifiant autosuffisant, lisible par d'autres services sans requête en base — tant que la signature peut être vérifiée. Algorithmes courants : HS256 (HMAC à secret partagé) et RS256/ES256 (RSA ou courbe elliptique, où l'émetteur garde une clé privée et chacun vérifie avec la clé publique correspondante).
Ce qu'il faut savoir
Décoder n'est pas vérifier. L'en-tête et la charge utile sont seulement encodés, pas chiffrés, donc n'importe qui peut les lire sans clé — et n'importe qui peut aussi forger un token avec les claims de son choix. Ce qui rend un JWT digne de confiance, c'est exclusivement sa signature, et vérifier une signature nécessite le secret (algorithmes HMAC) ou la clé publique de l'émetteur (algorithmes RSA/ECDSA). Cette vérification doit se faire sur un serveur qui détient la clé ; elle ne peut pas être effectuée en toute sécurité dans un outil de navigateur, car exposer un secret là reviendrait à en annuler l'intérêt. Considérez ce décodeur strictement comme une aide au débogage — jamais comme une preuve qu'un token est authentique ou encore valide.
Faites également attention à ce que vous collez : un JWT transporte des données de session ou d'autorisation, traitez-le comme un mot de passe et évitez de coller des tokens de production réels dans un outil sur une machine partagée. Les tokens à cinq parties sont des JWE (chiffrés), pas des JWS (signés) — ce décodeur traite la variante signée, bien plus courante. Et ne faites jamais confiance aveuglément au champ alg dans votre propre code — une attaque connue piège les implémentations naïves en leur faisant accepter alg: none ou substituer HS256 à RS256 ; d'où l'intérêt de bibliothèques éprouvées plutôt que du code fait maison.
Questions fréquentes
Le décodage vérifie-t-il que le token est valide ?
Non — le décodage ne fait que lire le contenu. La vérification de signature nécessite le secret de signature ou la clé publique et relève de votre serveur. N'importe qui peut fabriquer un token avec n'importe quelle charge utile ; seule la signature prouve l'authenticité.
Est-il sûr de coller ici un vrai token de production ?
L'outil ne transmet jamais le token — le décodage est local. Traitez tout de même les tokens de production comme des mots de passe : préférez des tokens expirés ou de test lors du débogage dans des environnements partagés.
Pourquoi mon token ne se décode-t-il pas ?
Vérifiez que vous avez copié les trois parties séparées par des points et qu'aucun saut de ligne ne s'est glissé. Les tokens chiffrés (JWE, cinq parties) ne peuvent pas être lus sans la clé — cet outil traite les tokens signés (JWS), le type le plus courant.
Quelle est la différence entre un token JWS et un token JWE ?
JWS (JSON Web Signature) est le format signé que cet outil décode — trois parties, lisibles mais infalsifiables sans détection. JWE (JSON Web Encryption) comporte cinq parties et la charge utile elle-même est chiffrée, donc illisible sans la clé de déchiffrement ; si votre token ne se décode pas ici et comporte quatre points au lieu de deux, il s'agit très probablement d'un JWE.
Que signifient les claims exp, iat et nbf ?
Les trois sont des timestamps Unix (secondes depuis le 01/01/1970). iat enregistre le moment d'émission du token, nbf marque le premier instant où il devient valide, et exp marque le moment où il cesse de l'être. Un serveur qui se comporte correctement rejette tout token dont l'heure actuelle sort de la fenêtre nbf-exp.
Outils similaires
Signaler un problème
Décodeur JWT
Commentaires
Pas encore de commentaires — soyez le premier à en écrire un !