Décodeur / Inspecteur / Validateur JWT

Décodez, inspectez et vérifiez les tokens JWT — header, payload, claims et signatures HMAC. Tout fonctionne dans votre navigateur

Token JWT 0 caractères
Exemples:
Ce token a été décodé mais NON vérifié. Le décodage ne prouve pas l'authenticité — n'importe qui peut créer un JWT avec n'importe quel payload.
Header

                    
Payload

                
État Temporel
Signature
Claims
Claim Valeur Signification Status
Avertissements
Collez un token JWT ci-dessus et cliquez sur Décoder pour inspecter son contenu.
La validation vérifie la structure, le format et les claims temporels. Elle NE vérifie PAS la signature cryptographique. Utilisez l'onglet Vérifier pour la vérification de signature.
Collez un token JWT ci-dessus pour valider sa structure et ses claims.

Vérification de signature RSA et EC

La vérification de signature RSA et EC nécessite l'importation de clés publiques via l'API Web Crypto. Cette fonctionnalité est prévue pour une mise à jour future.

Pour les tokens basés sur HMAC (HS256, HS384, HS512), la vérification complète de signature est disponible maintenant en utilisant l'option Secret HMAC.

Vérification de signature RSA et EC

La vérification de signature RSA et EC nécessite l'importation de clés publiques via l'API Web Crypto. Cette fonctionnalité est prévue pour une mise à jour future.

Pour les tokens basés sur HMAC (HS256, HS384, HS512), la vérification complète de signature est disponible maintenant en utilisant l'option Secret HMAC.

Qu'est-ce qu'un JWT ?

Un JSON Web Token (JWT) est un format de token compact et sûr pour les URL, permettant de transmettre des informations de manière sécurisée entre les parties. Il se compose de trois parties encodées en Base64URL séparées par des points.

eyJhbGci...(Header).eyJzdWIi...(Payload).SflKxwRJ...(Signature)

Header

Le header contient généralement deux champs : l'algorithme de signature (alg) et le type de token (typ).

{"alg": "HS256", "typ": "JWT"}

Payload (Claims)

Le payload contient des claims — des déclarations sur l'utilisateur et les métadonnées. Les claims standard incluent :

ClaimNomDescription
issÉmetteurQui a émis le token
subSujetDe qui parle le token
audAudienceDestinataire prévu du token
expExpirationQuand le token expire (horodatage Unix en secondes)
nbfPas AvantLe token n'est pas valide avant cette heure
iatÉmis LeQuand le token a été créé
jtiJWT IDIdentifiant unique du token

Signature

La signature est créée en encodant le header et le payload, en les joignant avec un point et en signant avec l'algorithme spécifié dans le header.

HMAC-SHA256(
  base64UrlEncode(header) + "." + base64UrlEncode(payload),
  secret
)

Idées Reçues Courantes

"JWTs are encrypted" — Standard JWTs (JWS) are only signed, not encrypted. The payload can be read by anyone who has the token.
"Decoding a JWT means it's trusted" — Decoding only reads the content. Without signature verification, the token could have been tampered with.
"alg: none is harmless" — The none algorithm means no signature. Accepting it can allow attackers to forge tokens. Always reject alg: none in production.

Bonnes Pratiques de Sécurité

Vérifiez toujours la signature avant de faire confiance aux claims
Vérifiez les claims exp, nbf et iat pour la validité temporelle
Validez les claims émetteur (iss) et audience (aud)
Ne stockez jamais de données sensibles (mots de passe, cartes de crédit) dans le payload
Utilisez des secrets forts pour HMAC et effectuez une rotation régulière des clés
Préférez les algorithmes asymétriques (RS256, ES256) pour les API publiques
Tout le décodage, la validation et la vérification de signature se fait dans votre navigateur. Votre JWT et vos secrets ne sont jamais envoyés à un serveur.

Tips

Décoder Ne Signifie Pas Faire Confiance

N'importe qui peut décoder un JWT — Base64URL n'est pas du chiffrement. Le décodage révèle le contenu, mais seule la vérification de signature prouve que le token n'a pas été falsifié.

Vérifiez l'Expiration Avant Utilisation

Le claim exp (expiration) est un horodatage Unix en secondes. Vérifiez toujours qu'il est dans le futur avant de faire confiance à un token. Cet outil affiche l'état temporel instantanément.

alg: none Est un Risque de Sécurité

L'algorithme "none" signifie que le token n'a pas de signature. L'accepter en production peut permettre aux attaquants de falsifier des tokens. Rejetez toujours alg: none sur votre serveur.

Les JWT Ne Sont Pas Chiffrés par Défaut

Les JWT standard (JWS) sont uniquement signés, pas chiffrés. Le payload est lisible par quiconque possède le token. Ne stockez jamais de mots de passe, numéros de carte de crédit ou autres secrets dans un payload JWT.

Cas d'utilisation courants

🔌

Débogage d'API

Collez les tokens d'accès des réponses API pour inspecter rapidement les claims, vérifier l'expiration et vérifier l'émetteur sans quitter votre navigateur.

🔐

Test de Flux d'Authentification

Décodez les tokens à chaque étape des flux OAuth2 ou OpenID Connect pour vérifier que les scopes, l'audience et les claims corrects sont présents.

⏱️

Surveillance d'Expiration des Tokens

Vérifiez quand les tokens expirent pour déboguer les problèmes de timeout de session. L'outil affiche des différences de temps lisibles comme "expire dans 14 minutes".

⚙️

Vérification de Pipeline CI/CD

Vérifiez que les tokens de service à service contiennent les claims attendus avant le déploiement. Collez les tokens des logs du pipeline pour les inspecter.

🛡️

Audit de Sécurité

Inspectez les tokens pour détecter les fuites de données sensibles (PII dans le payload), les algorithmes faibles (alg: none) ou les claims de sécurité manquants (exp, aud, iss).

Questions fréquemment posées

Qu'est-ce qu'un JWT ?
Un JSON Web Token (JWT) est un format compact et sûr pour les URL, permettant de transmettre des informations entre les parties sous forme d'objet JSON. Il se compose de trois parties encodées en Base64URL : header, payload et signature, séparées par des points.
Un JWT est-il chiffré ?
Les JWT standard (JWS — JSON Web Signature) sont signés mais PAS chiffrés. Le payload peut être lu par n'importe qui. Les tokens JWE (JSON Web Encryption) sont chiffrés, mais c'est un format différent avec 5 segments au lieu de 3.
Puis-je faire confiance à un JWT décodé ?
Non. Le décodage ne révèle que le contenu — il ne vérifie pas l'authenticité. N'importe qui peut créer un JWT avec n'importe quel payload. Vous devez vérifier la signature cryptographique pour faire confiance aux claims.
Quelle est la différence entre décoder et vérifier ?
Le décodage lit le header et le payload encodés en Base64URL. La vérification contrôle la signature cryptographique pour s'assurer que le token a été émis par une partie de confiance et n'a pas été falsifié. Vérifiez toujours avant de faire confiance.
Pourquoi mon token s'affiche-t-il comme expiré ?
Le claim exp est un horodatage Unix en secondes. Si cette heure est dans le passé, le token a expiré. Vérifiez la valeur de exp et comparez-la avec l'heure actuelle. Les différences de fuseau horaire n'affectent pas cela — les horodatages Unix sont toujours en UTC.
Que signifie le champ alg ?
Le champ alg (algorithme) dans le header spécifie l'algorithme cryptographique utilisé pour signer le token. Valeurs courantes : HS256 (HMAC avec SHA-256), RS256 (RSA avec SHA-256), ES256 (ECDSA avec P-256 et SHA-256).
Qu'est-ce que l'encodage Base64URL ?
Base64URL est une variante de Base64 qui remplace + par - et / par _, et supprime le remplissage (=). Cela rend la sortie sûre pour les URL et les noms de fichiers. JWT utilise Base64URL pour les segments header et payload.
Mon token ou mon secret est-il envoyé à un serveur ?
Non. Tout le décodage, la validation et la vérification de signature se fait entièrement dans votre navigateur en utilisant JavaScript et l'API Web Crypto. Votre JWT et vos secrets ne quittent jamais votre appareil.
Puis-je vérifier les tokens HS256 ici ?
Oui. Cet outil prend entièrement en charge la vérification de signature HMAC (HS256, HS384, HS512) en utilisant l'API Web Crypto. Entrez votre secret dans l'onglet Vérifier pour vérifier si la signature est valide.
Pourquoi les tokens JWE ne sont-ils pas pris en charge ?
Les tokens JWE (JSON Web Encryption) ont 5 segments et nécessitent une clé de déchiffrement pour lire le payload. Cet outil se concentre sur les tokens JWS (signés) qui ont 3 segments. Le support JWE pourrait être ajouté dans une mise à jour future.