Décodeur JWT

Lisez l'en-tête, les revendications et l'expiration d'un jeton JSON Web Token dans votre navigateur. Décodage seul — aucune signature n'est vérifiée.

Fonctionne entièrement dans votre navigateur. Rien n'est envoyé, journalisé ni conservé.

Cet outil décode. Il ne vérifie pas. Rien de ce qui suit ne vous dit si le jeton est authentique. Quiconque détient un jeton signé peut en lire les revendications, et n'importe qui peut écrire un jeton qui ressemble à celui-ci. Vérifiez la signature dans votre application, avec votre clé.

Trois parties séparées par des points. Rien n'est envoyé nulle part.

Collez un jeton et voyez son en-tête, ses revendications et son expiration. Le décodage a lieu dans votre navigateur : le jeton n'est ni envoyé, ni journalisé, ni stocké.

Cet outil ne vérifie pas la signature, et rien de ce qu'il affiche ne signifie que le jeton est authentique.

Comment ça marche

Un JSON Web Token est constitué de trois parties encodées en base64url et séparées par des points : un en-tête indiquant l'algorithme de signature, une charge utile de revendications, et une signature portant sur les deux premières. Les deux premières sont encodées, pas chiffrées — quiconque détient le jeton peut les lire, ce qui est exactement ce qui se passe ici.

Les revendications temporelles enregistrées sont affichées sous forme de dates lisibles : « exp » quand le jeton cesse d'être valide, « nbf » quand il commence à l'être, « iat » quand il a été émis. Elles sont comparées à votre horloge pour situer le jeton dans sa fenêtre de validité.

La signature est affichée telle qu'elle a été écrite et n'est pas décodée. C'est une signature portant sur des octets et non sur du texte ; la rendre en caractères laisserait croire qu'elle dit quelque chose.

Exemples

Cas Saisie Résultat
Un jeton qui ne déclare aucune signature eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0NTY3ODkwIn0. alg none, typ JWT, sub 1234567890

Questions fréquentes

Pourquoi la signature n'est-elle pas vérifiée ?

Parce que vérifier exige la clé de signature, et une page qui la demanderait vous demanderait de coller dans un site web le secret qui protège votre système. Il y a une raison plus subtile : un décodeur qui aurait l'air de vérifier vous inviterait à faire confiance à une charge utile que n'importe qui aurait pu écrire. Vérifiez dans votre application, avec votre clé.

Un JWT est-il chiffré ?

Non. Un jeton signé est encodé, ce qui n'est pas la même chose : quiconque le détient peut lire chacune de ses revendications, sans aucune clé. Ne mettez jamais dans un jeton ce que son porteur ne doit pas voir. Les jetons chiffrés existent — ils comportent cinq parties au lieu de trois — et cet outil ne sait pas les lire.

Que signifie un algorithme « none » ?

Que le jeton ne porte aucune signature. C'est la plus ancienne attaque contre JWT : retirer la signature, mettre « alg » à « none », et espérer que la bibliothèque réceptrice l'accepte. La page signale un tel jeton ; si vous en voyez un que vous n'avez pas créé, considérez-le comme hostile.

Mon jeton quitte-t-il le navigateur ?

Non. Le décodage s'exécute localement en JavaScript, et il n'y a pas de lien de partage pour cet outil, car un lien mettrait le jeton dans une URL — où il finirait dans l'historique du navigateur et dans les journaux des serveurs.

Bon à savoir

  • Décodage seul. Aucune signature n'est vérifiée, et rien sur cette page ne dit si un jeton est authentique.
  • Le jeton est décodé dans votre navigateur et n'est jamais envoyé, journalisé ni stocké. L'outil nécessite JavaScript ; sans lui, il n'y a aucun décodage.
  • Un jeton signé est lisible par quiconque le détient. Considérez chacune de ses revendications comme publique.

Sources

Tous les outils Code