Décodeur JWT : en-tête, payload et expiration
Décodez instantanément les JSON Web Tokens (JWT). Affichez l'en-tête et la charge utile en toute sécurité.
Signature
La vérification de la signature nécessite une clé secrète.
Comment ce décodeur JWT lit un token
Un JSON Web Token regroupe trois éléments dans une seule chaîne : un en-tête, une charge utile et une signature. Ce décodeur sépare un token encodé en ces trois parties, reconvertit l'en-tête et la charge utile en JSON lisible, puis affiche l'algorithme, la date d'émission et la date d'expiration, pour que vous puissiez inspecter un token sans écrire de code.
En-tête, charge utile et signature
Un token est divisé en trois parties par deux points : en-tête.charge_utile.signature. Les deux premières parties sont du JSON encodé en base64url, donc les décoder est une opération réversible, pas un chiffrement. L'en-tête indique l'algorithme de signature, le champ alg, par exemple HS256 ou RS256, ainsi que le type de token. La charge utile porte les claims : un identifiant de sujet, des champs propres à l'application, et généralement iat (date d'émission) et exp (date d'expiration) stockés en secondes Unix. La signature est une valeur cryptographique calculée à partir de l'en-tête et de la charge utile ; la vérifier demande la clé secrète ou privée qui l'a créée, donc lire le contenu d'un token est différent de vérifier son authenticité. Certains tokens sont signés avec alg à none et n'ont que deux parties, en-tête.charge_utile ; le décodeur accepte aussi cette forme plus courte et laisse le segment de signature vide. Le base64url se distingue du base64 classique par un tiret et un tiret bas à la place du plus et de la barre oblique, et il se passe le plus souvent du signe égal utilisé comme remplissage.
Exemple concret
Collez un token comme celui ci-dessous : il se sépare en trois segments colorés, puis l'en-tête et la charge utile s'affichent en JSON formaté.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI1NjEwMjkzODQ3IiwibmFtZSI6IkNhbWlsbGUgRHVib2lzIiwiaWF0IjoxNzA0NzE1MjAwLCJleHAiOjE3MTI0OTEyMDB9.Z5HEtCtfzS_4D7GJDkZ0yBsnLtw
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "5610293847",
"name": "Camille Dubois",
"iat": 1704715200,
"exp": 1712491200
}
Le badge Algorithm affiche HS256, lu dans l'en-tête. La valeur iat correspond au 8 janvier 2024 et la valeur exp au 7 avril 2024 ; cette date étant passée, le badge Status affiche EXPIRED. Rien de tout cela ne se passe sur un serveur : le décodage s'exécute dans le navigateur, et l'outil ne vérifie jamais l'authenticité de la signature puisqu'il n'a pas accès à la clé qui l'a créée.