Décodeur JWT en ligne
Décodez des jetons JWT et vérifiez facultativement les signatures HS256/384/512 ou RS/ES dans votre navigateur. Rien n'est envoyé.
Ceci décode l'en-tête et la charge utile d'un JWT et peut vérifier une signature localement, avec HS* et le secret partagé, ou RS*/ES* et une clé publique JWK/JWKS. La vérification est facultative. Une signature valide prouve l'intégrité, pas la fiabilité de l'émetteur.
Espace de travail
Décoder un jeton JWT
Pas encore de résultat
Saisissez votre entrée ci-dessus, le résultat s'affichera ici.
Analyser JWK / JWKS
Collez une clé JSON Web Key (JWK) ou un ensemble JSON Web Key Set (JWKS) pour inspecter sa structure.
Lire les détails +
Qu'est-ce que JWT ?
Le JSON Web Token (JWT) est une norme ouverte (RFC 7519) qui définit un moyen compact et autonome de transmettre en toute sécurité des informations entre parties sous forme d'objet JSON. Ces informations peuvent être vérifiées et fiabilisées car elles sont signées numériquement avec un secret (algorithme HMAC) ou une paire de clés publique/privée (RSA ou ECDSA).
Les JWT sont couramment utilisés pour l'authentification et l'échange d'informations dans les applications web modernes. Lorsqu'un utilisateur se connecte, le serveur génère un JWT contenant son identité et ses permissions. Le client inclut ensuite ce jeton dans ses requêtes, ce qui permet au serveur de vérifier l'identité sans conserver d'état de session.
Le principal avantage du JWT est son caractère sans état – le serveur n'a pas besoin de stocker les informations de session en base de données. Toutes les informations nécessaires sont contenues dans le jeton lui-même, ce qui rend le JWT idéal pour les systèmes distribués et les architectures de microservices.
Structure du JWT
Un JWT se compose de trois parties séparées par des points (".") : en-tête, charge utile et signature. Chaque partie est encodée en Base64Url.
1En-tête
Contient des métadonnées sur le jeton, notamment l'algorithme de signature (alg) et le type de jeton (typ).
{
"alg": "HS256",
"typ": "JWT"
}2Charge utile
Contient les claims – des déclarations sur l'utilisateur et des données supplémentaires. Les claims sont classés comme enregistrés (standard), publics ou privés.
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022,
"exp": 1516242622
}3Signature
Assure que le jeton n'a pas été altéré. Créée en signant l'en-tête et la charge utile encodés avec une clé secrète.
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
Claims JWT standard
issÉmetteur – Identifie le principal qui a émis le JWT
subSujet – Identifie le principal qui est le sujet du JWT
audAudience – Identifie les destinataires auxquels le JWT est destiné
expHeure d'expiration – La date à partir de laquelle le JWT ne doit plus être accepté
nbfPas avant – La date avant laquelle le JWT ne doit pas être accepté
iatÉmis à – La date à laquelle le JWT a été émis
jtiID JWT – Identifiant unique du JWT
Références
Référence : un essai réel, les paramètres et les erreurs
Exemple déroulé
Décoder et vérifier l'exemple HS256 canonique
Entrée
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cSortie
Header: {"alg":"HS256","typ":"JWT"}
Payload: {"sub":"1234567890","name":"John Doe","iat":1516239022}
Vérification : HS256 avec le secret your-256-bit-secret -> vérifiéComment vérifier: Le jeton a trois segments base64url. Avec your-256-bit-secret dans le champ de vérification, la page indique vérifié. Sans ce secret, le jeton est toujours décodé, mais la signature n'est pas contrôlée.
Paramètres
| Paramètre | Valeur | Par défaut | Limite |
|---|---|---|---|
| Décodage | Tout JWT à trois parties | — | Segments base64url ; le remplissage est facultatif |
| Vérification | HS256/384/512, RS256/384/512, ES256/384/512 | — | none et les valeurs alg inconnues sont signalés comme non pris en charge |
| Clé HMAC | Texte secret UTF-8 | — | Octets bruts, non décodés en Base64 |
| Clé RSA/EC | JWK ou JWKS public en JSON | — | kid est préféré quand plusieurs clés existent ; un fichier PEM n'est pas accepté dans la page |
| Décalage d'horloge | 0 à 300 secondes | 30 secondes | Sert au diagnostic de exp, nbf et iat, pas à la signature |
Erreurs et remèdes
| Symptôme | Cause probable | Que faire |
|---|---|---|
| Un jeton à trois parties ne se décode pas. | Un segment n'est pas du base64url valide. | Collez le jeton exact, sans retours à la ligne ni guillemets ajoutés. |
| La signature est invalide. | Le secret a été décodé en Base64 ailleurs, ou le jeton a été modifié. | Utilisez le texte secret brut ; pour RS/ES, collez un JWK ou un JWKS, pas un fichier PEM. |
| La signature est non prise en charge. | alg vaut none ou sort de la liste autorisée. | Traitez le jeton comme non fiable et utilisez un algorithme pris en charge. |
| La signature est valide mais le jeton est expiré. | exp est passé ; le décalage ne tolère que 0-300 secondes. | Vérifiez exp, nbf et iat séparément ; une signature valide ne rend pas le jeton courant. |
| Un JWKS à plusieurs clés échoue. | kid manque ou ne correspond à aucune clé. | Ajoutez le bon kid ou collez le JWK unique correspondant. |
Comment décoder un jeton JWT en ligne
Décodez en toute sécurité l'en-tête et la charge utile d'un JWT dans votre navigateur sans envoyer de données à un serveur.
- 1
Collez votre jeton JWT
Saisissez un JWT complet (ex. : xxx.yyy.zzz) dans la zone de saisie.
- 2
Cliquez sur « Décoder »
L'outil analyse le jeton à l'aide du décodage Base64Url.
- 3
Consultez les claims
Inspectez l'en-tête (alg, typ) et la charge utile (iss, exp, sub, etc.) en JSON lisible avec des horodatages lisibles.
Quand utiliser cet outil
- 1Déboguez les problèmes d'authentification en inspectant le contenu des jetons JWT
- 2Vérifiez les dates d'expiration des jetons et les horodatages d'émission
- 3Inspectez les claims personnalisés et les permissions intégrées aux jetons
- 4Analysez JWK/JWKS pour la gestion des clés et la configuration de la vérification
- 5Comprenez la structure des jetons pendant le développement et les tests
- 6Validez la structure et le format des jetons lors de l'intégration API
Conseils de sécurité
- Cet outil décode uniquement les JWT – il ne vérifie PAS les signatures
- Ne faites pas confiance à un JWT sans vérification appropriée de la signature sur votre serveur
- Utilisez toujours HTTPS lors de la transmission des JWT pour éviter toute interception
- Validez tous les claims (iss, aud, exp) avant d'accepter un JWT
- Stockez les JWT en toute sécurité dans des cookies httpOnly ou un stockage sécurisé, pas dans localStorage
- Faites tourner régulièrement les clés de signature et appliquez les bonnes pratiques de gestion des clés
Questions fréquentes
Mon jeton est-il envoyé à un serveur ?
Non. Le JWT est décodé uniquement dans votre navigateur. L'en-tête et la charge utile sont affichés localement et rien n'est transmis.
Puis-je valider des ensembles de clés JWKS ?
Oui. Collez un ensemble JWKS pour analyser et valider sa structure localement, sans envoyer le jeton ni les clés où que ce soit.
Que ne dois-je jamais faire avec un JWT ?
Ne collez jamais un jeton dans un service en ligne en lequel vous n'avez pas confiance – les jetons contiennent des claims potentiellement sensibles. Un décodeur côté client les conserve sur votre machine.
Le décodeur vérifie-t-il la signature ?
Oui, dès que vous fournissez le matériel de clé. Les jetons HS256/384/512 sont vérifiés avec un secret, les jetons RS et ES avec une clé publique PEM ou un JWKS collé. La vérification répond uniquement à la question « la signature correspond-elle ? » ; l'expiration, l'émetteur et l'audience sont évalués séparément, car une signature valide ne rend pas un jeton digne de confiance.
Qu'est-ce que le décalage d'horloge et quel est son effet sur l'expiration ?
Le décalage d'horloge est la différence tolérée entre votre machine et l'émetteur du jeton. Un jeton n'est signalé comme expiré que si `exp` dépasse l'heure actuelle plus la tolérance configurée (30 secondes par défaut) ; la même tolérance s'applique à `nbf` et `iat`. Une tolérance de 30 à 60 secondes évite les fausses alertes dues à une légère dérive d'horloge.
Guides associés
Vous êtes responsable de la gestion des clés et de la validation des résultats.