Décoder un JWT : lire et vérifier un JSON Web Token
Pour décoder un JWT, collez le token : l’outil montre ce que contient un JSON Web Token – en-tête, payload et signature, avec émetteur, expiration et validité en clair. Avec le secret ou la clé publique, il peut même vérifier la signature. Le token ne quitte pas votre navigateur.
Source : §§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT). Mise à jour : .
Comment le calcul est fait
Un JSON Web Token (JWT) transporte des revendications (claims) entre deux parties – en général après la connexion, comme preuve que « cet utilisateur est connecté ». Il comporte trois parties séparées par des points : en-tête.payload.signature (RFC 7519, RFC 7515).
Décoder un JWT : mode d’emploi
- Collez le token dans le champ du haut (avec ou sans « Bearer »).
- L’en-tête et le payload s’affichent aussitôt en JSON lisible, avec l’expiration et l’émetteur en dessous.
- Facultatif : saisissez la clé sous « Secret ou clé publique » et l’outil vérifie la signature.
Contenu d’un token
- En-tête : l’algorithme (
alg, p. ex. HS256 ou RS256) et le type (typ). - Payload : les claims. Sont enregistrés notamment
iss(émetteur),sub(sujet),aud(destinataire),exp(expiration),nbf(pas avant),iat(émis à) etjti(identifiant). Les dates sont des secondes depuis 1970 ; l’outil les affiche en UTC. - Signature : protège contre toute modification si le destinataire la vérifie avec la bonne clé.
Important : lire n’est pas vérifier
L’en-tête et le payload sont seulement encodés en base64url, pas chiffrés. Quiconque voit un token peut le lire : mots de passe et autres secrets n’y ont pas leur place. Sans vérification de la signature, le contenu ne prouve rien, car chacun peut le modifier. La vérification ici fonctionne avec un secret HMAC (HS256/384/512) et une clé publique (RS, PS, ES) ; un token avec alg: none n’est pas signé.
Protection contre l’« algorithm confusion »
Une attaque connue présente au serveur un token alg: HS256 signé avec la clé publique comme secret. L’outil refuse donc la vérification quand une clé publique ou privée est saisie comme secret HS (la RFC 8725 conseille de ne jamais tirer l’algorithme du seul token).
Limites
- Les tokens chiffrés (JWE, cinq parties) sont illisibles sans la clé ; seul l’en-tête est affiché.
- La vérification pour EdDSA et pour les certificats n’est pas incluse. Qu’un token soit valide pour votre application dépend de l’émetteur, du destinataire et de l’expiration, que votre serveur doit contrôler lui-même.
- Les tokens de production ne vont que sur des appareils de confiance. Rien n’est envoyé ni enregistré ici, mais un token expiré ou de test reste plus prudent.
Questions fréquentes
Qu’est-ce qu’un JWT ?
Un JSON Web Token est une chaîne compacte, sûre pour les URL, en trois parties (en-tête, payload, signature). Il transporte des claims comme l’identifiant utilisateur ou l’expiration et sert souvent de preuve d’accès après la connexion.
Tout le monde peut-il lire le contenu d’un JWT ?
Oui. L’en-tête et le payload sont seulement encodés en base64url, pas chiffrés. Seule la signature protège contre la modification, pas contre la lecture. Ne mettez donc aucun secret dans un JWT.
Comment vérifier la signature d’un JWT ?
Sous « Secret ou clé publique », saisissez le secret pour HS256/384/512, ou la clé publique en PEM ou JWK pour RS256, PS256 ou ES256. Le résultat apparaît sous « Signature ».
Est-il sûr de coller mon token dans un décodeur en ligne ?
Ce décodeur travaille entièrement dans votre navigateur et n’envoie rien. Cela dit, un token valide est une preuve d’accès. Utilisez si possible des tokens de test ou déjà expirés.
Que signifient exp, iat et nbf ?
exp est l’instant d’expiration du token, iat l’instant d’émission et nbf l’instant à partir duquel il est valide. Les trois sont des secondes depuis le 1er janvier 1970 UTC.
Pourquoi l’outil indique-t-il « non vérifiée » ?
Sans clé, rien ne permet de contrôler la signature : le contenu est seulement lu. Un algorithme non pris en charge ou un format de clé inadapté empêche aussi la vérification.
Sources et références juridiques
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
Dernière mise à jour : · Principes éditoriaux
Outils similaires
- Encoder et décoder en Base64Encodez et décodez Base64 et Base64url en UTF-8 correct, ainsi que l’encodage URL (pourcent-encodage). Erreurs expliquées, tout en local.
- Générateur de hash : SHA-256, SHA-512, SHA-1, MD5Calculez les hash SHA-256, SHA-384, SHA-512, SHA-1 et MD5 d’un texte ou d’un fichier et vérifiez une somme de contrôle – en local, sans envoi.
- Formater, valider et minifier du JSONValidez votre JSON selon la RFC 8259 : erreur avec ligne, colonne et explication claire. Indentez ou minifiez, triez les clés. En local dans le navigateur.
- Convertisseur de timestamp UnixConvertir un timestamp Unix en date et inversement : secondes, millisecondes, micro- et nanosecondes détectées ; affichage UTC, heure locale, ISO 8601.
- Générateur d’UUID : créer et vérifier des UUID v4 et v7Générez des UUID en ligne : version 4 (aléatoire) ou version 7 (triée par date), jusqu’à 1 000 d’un coup. Vérifiez un UUID : version, variante et horodatage.
- Générateur de mot de passeGénérez un mot de passe aléatoire et sécurisé ou une phrase de passe facile à retenir, avec son entropie en bits, calculé dans votre navigateur.
- Quelle est mon adresse IP ?Affiche instantanément votre adresse IP publique, détecte IPv4 ou IPv6 et explique la différence. Gratuit – votre IP n’est pas stockée.
- JSON escape / unescapeJSON escape et unescape en ligne : transformez un texte en chaîne JSON valide (guillemets, barres obliques inverses et sauts de ligne échappés) ou l’inverse.
- Convertisseur IEEE 754Convertisseur IEEE 754 pour half, single et double : convertissez décimal, hexadécimal ou bits et voyez signe, exposant, mantisse et valeur exacte stockée.