FreeToGenerate.com

100 % gratuit · sans inscription · rien n'est envoyé

Traitement 100 % local : votre token n'est jamais envoyé, jamais journalisé, jamais placé dans l'URL.

Aussi disponible en : English · Español · Português · العربية

Décodeur JWT en ligne

Collez un token JWT, lisez son header et son payload en clair, immédiatement et sans que le token ne quitte votre navigateur.

Qu'est-ce qu'un décodeur JWT ?

Un JSON Web Token (JWT) est une chaîne compacte en trois parties séparées par des points : un header, un payload et une signature, chacune encodée en base64url. Le header précise l’algorithme de signature (alg) et le type (typ) ; le payload contient les claims, c’est-à-dire les informations que le token transporte — qui l’a émis, à qui il s’adresse, jusqu’à quand il reste valide.

Décoder un JWT consiste simplement à inverser ce base64url pour lire ce que ces deux premières parties contiennent réellement. Ce décodeur affiche le header et le payload sous forme de tableau lisible, avec les dates UTC calculées pour les claims temporels, l’algorithme signalé comme non sécurisé quand alg vaut none, et la signature telle quelle — sans jamais tenter de la vérifier.

Tout se passe dans votre navigateur : le token n’est jamais envoyé à un serveur, jamais journalisé, jamais glissé dans l’URL, contrairement à certains outils qui le laissent traîner dans la barre d’adresse.

Comment l'utiliser

  1. Collez votre token. Le décodage démarre à la frappe, sans bouton à cliquer — dès que le texte ressemble à un JWT compact, le header et le payload apparaissent.
  2. Lisez le header et le payload. L’algorithme, le type et le statut (expiré, pas encore valide, ou en cours de validité) s’affichent en haut ; en dessous, chaque claim enregistré par la RFC 7519 est expliqué et daté quand c’est pertinent.
  3. Copiez ce dont vous avez besoin.Un bouton de copie accompagne chaque vue JSON ; un bouton charge un token d’exemple pour tester l’outil, un autre efface tout d’un coup.

Les limites honnêtes

Décoder un JWT et vérifier un JWT sont deux opérations complètement différentes, et c’est le point que cette page ne veut surtout pas brouiller. La RFC 7519 elle-même distingue les deux : récupérer les octets d’un token, en inversant le base64url pour lire le JSON qu’il contient, ne dit rien sur l’authenticité de sa signature. Un token décodé affiche ce qu’il affirme, pas ce qui est vrai. N’importe qui peut fabriquer localement un JWT avec « admin »: true dans le payload ; le décodeur l’affichera fidèlement, exactement comme il afficherait un token signé par le bon serveur avec le bon secret.

Ce n’est pas un oubli : il n’y a volontairement aucun champ pour coller un secret et vérifier une signature HS256. Vérifier correctement supposerait de faire confiance à une page web avec la clé qui protège tout votre système d’authentification — or ce secret est précisément la donnée qu’on ne doit jamais coller nulle part, encore moins dans un outil en ligne dont on ne contrôle pas le code. Ajouter ce champ aurait été facile ; c’est justement pour ça que cette page a choisi de ne pas l’ajouter.

Ce que l’outil ne peut pas vous dire dépasse la signature. Il juge l’expiration (exp) et la validité (nbf) d’après l’horloge de votre propre appareil, qui peut être décalée, et d’après ce que le token affirme sur lui-même. Il ne vérifie pas que aud correspond bien à votre application ou que iss correspond au serveur que vous attendez — deux vérifications que votre backend doit faire lui-même. Il ne sait pas non plus si un token, bien que non expiré, a été révoqué entre-temps côté serveur. Et si vous collez un token à cinq parties, c’est un JWE chiffré : sans la clé de déchiffrement, son contenu reste illisible, et l’outil vous le dit plutôt que d’afficher une erreur générique.

Le moteur de décodage a été confronté à jose, une référence du genre, sur 400 tokens générés aléatoirement plus des cas limites écrits à la main — alg: none, JWE à cinq parties, base64url invalide, UTF-8 invalide — soit 3 073 vérifications, toutes réussies. Cette bibliothèque a ensuite été retirée : elle a servi à valider le code, elle n’est pas une dépendance du site.

Pourquoi est-ce gratuit ?

Cette page est un fichier statique qui tourne entièrement dans votre navigateur : ni compte à créer, ni serveur qui reçoit votre token, ni fichier à téléverser. Le décodage, base64url puis JSON.parse, est un calcul si léger qu’il ne coûte rien à faire tourner côté client, donc il n’y a rien à facturer. Pas de filigrane, pas de limite de nombre d’utilisations, pas d’e-mail à laisser.