Convertisseur Gratuit

Décodeur de Token JWT

Décodez l'en-tête et la charge utile d'un JWT (JSON Web Token) instantanément dans votre navigateur. Gratuit, privé et côté client — aucune donnée n'est envoyée au serveur.

À propos de cet outil

Les jetons Web JSON (JWT) sont un format compact et sécurisé pour les URL pour la transmission de revendications entre deux parties, défini par la RFC 7519. Un JWT est constitué de trois segments codés en base64url séparés par des points : en-tête (algorithme et type de jeton), charge utile (revendications) et signature (preuve cryptographique d'authenticité). L'en-tête et la charge utile sont JSON, codés en base64url pour la sécurité des URL ; la signature utilise l'un des nombreux algorithmes (HS256, RS256, ES256 et autres) sur l'en-tête et la charge utile codés.

Le décodage d'un JWT (le diviser en segments et le décoder en base64 chacun) ne nécessite aucun secret. Toute personne disposant du texte du jeton peut lire son en-tête et sa charge utile. La signature ne peut cependant être vérifiée qu'avec la clé secrète (HMAC) ou publique (asymétrique). Le décodage est destiné à l’inspection ; la vérification est ce qui prouve l’authenticité.

Ce décodeur divise le jeton, décode en base64 chaque segment, analyse l'en-tête et la charge utile au format JSON et affiche le résultat. Il ne tente pas de vérifier la signature car cela nécessite la clé secrète ou publique, que le décodeur ne possède pas. La sortie décodée est une inspection en lecture seule – utile pour le débogage des jetons mais ne remplace pas une vérification appropriée dans le code de l’application.

Pourquoi décoder les JWT

Le débogage des problèmes d’authentification implique presque toujours l’inspection des jetons. Un jeton qui semble valide dans le code peut contenir des déclarations erronées, un algorithme inattendu, un horodatage d'expérience expiré ou une inadéquation d'audience. Le décodage du jeton révèle exactement ce que l'émetteur a produit.

L'inspection des jetons pendant le travail d'intégration est également utile. Lors de la connexion à une API ou à un fournisseur d'identité tiers, il est préférable de comprendre les noms, formats et structures des revendications réelles en décodant des exemples de jetons plutôt qu'en s'appuyant sur une documentation qui peut être obsolète.

Comment l'utiliser

Collez le jeton, obtenez le contenu analysé.

  1. Collez votre JWT: Déposez le jeton complet (header.payload.signature) dans la zone de saisie. Le décodeur accepte les jetons avec ou sans le préfixe Bearer optionnel.
  2. Inspecter l'en-tête: L'en-tête affiche l'algorithme de signature (alg) et le type de jeton (typ). Les algorithmes courants sont HS256, RS256 et ES256. Surveillez alg: none, qui signale un jeton non signé et est rarement sûr en production.
  3. Inspecter la charge utile: La charge utile contient les revendications : iss (émetteur), sub (sujet), aud (audience), exp (expiration), iat (émis à) et toutes les revendications spécifiques à l'application. Les horodatages standard sont les secondes d’époque Unix.
  4. Vérifier séparément: Le décodeur ne vérifie pas la signature. Pour vérifier l'authenticité, exécutez le jeton via une bibliothèque JWT avec la clé secrète ou publique appropriée dans le code de votre application.

Cas d'utilisation courants

Détails techniques

Le format JWT est constitué de trois segments reliés par des points. Chaque segment est codé en base64url – la variante sécurisée pour les URL de base64 qui utilise - et _ au lieu de + et /, avec un remplissage parfois omis. Le décodage nécessite l'annulation des substitutions sécurisées pour les URL, le remplissage du segment et le décodage en base64.

L'en-tête et la charge utile sont JSON après décodage. Le segment de signature est binaire (octets de signature bruts) et n'est pas lisible par l'homme ; il faut que la clé de vérification soit utile.

Revendications courantes définies dans la RFC 7519 : iss (émetteur), sub (identifiant du sujet), aud (audience), exp (expiration en secondes d'époque Unix), nbf (horodatage pas avant), iat (horodatage émis à), jti (ID de jeton unique). Les revendications spécifiques à une application peuvent apparaître sous n'importe quel nom.

Meilleures pratiques

Questions fréquentes

Est-il sécuritaire de coller mon JWT ici ?
Oui. Le décodage s'effectue entièrement dans votre navigateur : le jeton n'est jamais envoyé à aucun serveur. Cependant, les JWT sont des informations d'identification : ne les partagez pas publiquement (dans des captures d'écran, des publications Stack Overflow, etc.), car ils peuvent accorder l'accès à vos comptes.
Cet outil vérifie-t-il la signature JWT ?
Cet outil décode et affiche le contenu du jeton. La vérification de la signature nécessite la clé secrète (HMAC) ou la clé publique (RSA/ECDSA), qui doit rester sur votre serveur. L'outil affiche l'algorithme utilisé mais ne peut pas le vérifier sans la clé.
Que signifient les revendications JWT standard ?
iss = émetteur, sub = sujet (ID utilisateur), exp = heure d'expiration (horodatage Unix), iat = émis à, nbf = pas avant, aud = public, jti = ID JWT. Les revendications personnalisées peuvent contenir des données spécifiques à l'application.
Pourquoi n’importe qui peut-il décoder un JWT ?
Les JWT sont codés et non chiffrés. La charge utile est codée en Base64URL (non chiffrée), afin que tout le monde puisse la lire. La signature empêche la falsification, pas la lecture. Ne stockez jamais de données sensibles (mots de passe, SSN) dans les charges utiles JWT.
Pourquoi certains jetons n'ont-ils pas de signature ?
Jetons avec alg : aucun n'a de signature. Ce sont des JWT valides par spécification mais n'offrent aucune garantie d'authenticité et ne doivent pas être acceptés en production.
Les JWT sont-ils chiffrés ?
Les charges utiles JWT standard sont signées mais non chiffrées. JWE (JSON Web Encryption, RFC 7516) est un format distinct pour les jetons chiffrés. La plupart des JWT dans la nature sont des JWS (signés uniquement).
Mon token est-il téléchargé sur un serveur ?
Non. Le décodage s'effectue dans votre navigateur ; le jeton ne quitte pas votre appareil.
Quelle est généralement la durée des JWT ?
De quelques centaines à plusieurs milliers de caractères. La longueur dépend du nombre et de la taille des revendications ainsi que de la longueur de la signature (qui dépend de l'algorithme).