JWT Decoder

Sign, verify and read JWT payload online, to simplify your development workflow.

Header
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload
{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true,
  "iat": 1516239022
}
Verify Signature

À propos de JWT (JSON Web Tokens)

Un JSON Web Token (JWT) est un format de jeton compact et URL-safe dĂ©fini dans la RFC 7519. Il se compose de trois parties encodĂ©es en Base64Url sĂ©parĂ©es par des points : un En-tĂȘte (algorithme et type de jeton), un Payload (revendications sur l'utilisateur ou la session) et une Signature (preuve cryptographique d'intĂ©gritĂ©). Les JWT permettent une authentification sans Ă©tat — le serveur n'a pas besoin de stocker les sessions, ce qui les rend idĂ©aux pour les systĂšmes distribuĂ©s et les microservices.

Avertissement de sécurité

Les JWT sont uniquement encodĂ©s en Base64Url, pas chiffrĂ©s. Quiconque possĂšde le jeton peut lire son contenu. Ne stockez jamais de mots de passe, numĂ©ros de carte de crĂ©dit ou autres donnĂ©es sensibles dans un payload JWT. Utilisez HTTPS pour empĂȘcher l'interception en transit.

Les trois parties d'un JWT

  • Header: Contient des mĂ©tadonnĂ©es — l'algorithme de signature (par ex. HS256, RS256) et le type de jeton (JWT). Cela indique au serveur comment vĂ©rifier la signature.
  • Payload: Contient les revendications — paires clĂ©-valeur comme sub (sujet/ID utilisateur), iat (Ă©mis Ă ), exp (expiration) et toutes les donnĂ©es personnalisĂ©es dont votre application a besoin.
  • Signature: Créée en signant l'en-tĂȘte et le payload encodĂ©s avec une clĂ© secrĂšte (HMAC) ou une clĂ© privĂ©e (RSA/ECDSA). Cela empĂȘche la falsification — si quelqu'un modifie le payload, la vĂ©rification de la signature Ă©choue.

Signature vs Chiffrement

  • JWS (JSON Web Signature): Le format JWT standard. Comme une carte postale avec un sceau inviolable — tout le monde peut lire le contenu, mais personne ne peut le modifier sans briser le sceau. Fournit intĂ©gritĂ© et authentification.
  • JWE (JSON Web Encryption): Un format JWT chiffrĂ©. Comme un coffre-fort verrouillĂ© — seul le destinataire prĂ©vu avec la clĂ© de dĂ©chiffrement peut lire ce qu'il y a Ă  l'intĂ©rieur. Fournit la confidentialitĂ© en plus de l'intĂ©gritĂ©.
  • Nested JWT: Un JWS enveloppĂ© dans un JWE (ou vice versa) pour Ă  la fois la signature et le chiffrement. UtilisĂ© lorsque vous devez garantir Ă  la fois qui l'a envoyĂ© et que personne d'autre ne peut le lire.

Algorithmes de signature courants

  • HS256 (HMAC + SHA-256): SymĂ©trique — la mĂȘme clĂ© secrĂšte signe et vĂ©rifie. Simple et rapide, idĂ©al lorsque les deux parties sont de confiance (par ex. un seul service backend).
  • RS256 (RSA + SHA-256): AsymĂ©trique — une clĂ© privĂ©e signe, une clĂ© publique vĂ©rifie. IdĂ©al lorsque des tiers doivent vĂ©rifier des jetons sans accĂšs Ă  la clĂ© de signature.
  • ES256 (ECDSA + SHA-256): AsymĂ©trique avec courbes elliptiques — clĂ©s plus petites et plus rapide que RSA pour une sĂ©curitĂ© Ă©quivalente. De plus en plus populaire dans les systĂšmes modernes.
  • EdDSA (Ed25519): Algorithme asymĂ©trique haute performance avec de petites signatures. Gagne en adoption pour sa vitesse et ses fortes propriĂ©tĂ©s de sĂ©curitĂ©.

Revendications JWT standard

  • iss (Émetteur): Identifie qui a Ă©mis le jeton (par ex. l'URL de votre serveur d'auth).
  • sub (Sujet): Identifie le principal/utilisateur que le jeton reprĂ©sente.
  • aud (Audience): Destinataire(s) prĂ©vu(s) du jeton (par ex. votre domaine API).
  • exp (Expiration): Timestamp Unix aprĂšs lequel le jeton n'est plus valide.
  • nbf (Pas avant): Timestamp Unix avant lequel le jeton ne doit pas ĂȘtre acceptĂ©.
  • iat (Émis Ă ): Timestamp Unix de crĂ©ation du jeton.
  • jti (ID JWT): Identifiant unique pour le jeton, utile pour empĂȘcher les attaques par rejeu.

Meilleures pratiques de sécurité

  • Validez toujours la signature avant de faire confiance au contenu d'un JWT
  • VĂ©rifiez la revendication exp et rejetez les jetons expirĂ©
  • Validez les revendications iss et aud pour empĂȘcher l'utilisation abusive de jetons entre services
  • Utilisez des jetons d'accĂšs Ă  courte durĂ©e de vie (5-15 minutes) avec des jetons de rafraĂźchissement pour les longues sessions
  • Stockez les jetons en toute sĂ©curitĂ© — prĂ©fĂ©rez les cookies HttpOnly au localStorage pour attĂ©nuer les XSS
  • Transmettez toujours les JWT via HTTPS pour empĂȘcher l'interception
  • N'utilisez jamais l'algorithme none en production — exigez toujours une signature valide
  • Effectuez une rotation pĂ©riodique des clĂ©s de signature et supportez l'ID de clĂ© (kid) pour une rotation en douceur

Cas d'utilisation courants

  • Authentification utilisateur dans les applications web et mobiles
  • Autorisation API entre microservices
  • Authentification unique (SSO) sur plusieurs domaines
  • Jetons d'accĂšs OAuth 2.0 et jetons d'ID OpenID Connect
  • Transmission sĂ©curisĂ©e de revendications entre parties dans des webhooks ou systĂšmes Ă©vĂ©nementiels

Frequently Asked Questions

Est-il sûr de décoder les JWT ici ?

Oui. Tout le dĂ©codage se fait entiĂšrement dans votre navigateur. Votre JWT n'est jamais envoyĂ© Ă  un serveur, ce qui rend cet outil 100 % cĂŽtĂ© client et complĂštement privĂ©. Vous pouvez coller en toute sĂ©curitĂ© mĂȘme des tokens de production pour inspection.

Cet outil vérifie-t-il les signatures ?

Non. Cet outil dĂ©code et affiche l'en-tĂȘte et la charge utile d'un JWT mais ne vĂ©rifie pas la signature cryptographique. La vĂ©rification de signature nĂ©cessite la clĂ© de signature ou la clĂ© publique, ce qui doit ĂȘtre fait cĂŽtĂ© serveur.

Puis-je décoder des tokens expirés ?

Oui. Cet outil décode n'importe quel JWT valide quel que soit son statut d'expiration. La revendication d'expiration (exp) est simplement un champ de charge utile qui est affiché avec toutes les autres revendications, vous permettant d'inspecter les tokens qui ont déjà expiré.

Related Tools