Décodeur et vérificateur JWT
Décodez les JSON Web Tokens et vérifiez les signatures HS/RS/ES/PS — entièrement dans le navigateur
—
—
Qu'est-ce qu'un décodeur JWT ?
Un JWT (JSON Web Token) est un jeton en trois parties — en-tête, charge utile, signature — utilisé pour l'authentification et l'autorisation dans les applications web modernes. La charge utile ressemble à du texte aléatoire tant qu'on ne l'a pas décodée, ce qui est précisément le rôle de cet outil. Il transforme l'en-tête et la charge utile en JSON lisible et mis en forme, explique les claims enregistrés comme exp, nbf et iat en langage clair avec de vraies dates, et affiche si le jeton est expiré, actif ou pas encore valide. Il sait aussi vérifier les signatures : HS256/384/512 avec un secret partagé, et RS/PS/ES avec une clé publique PEM, le tout via Web Crypto dans le navigateur. Pour les développeurs qui déboguent des flux d'authentification, cela remplace l'habitude de coller des jetons de production sur des sites tiers.
Ce que cet outil sait faire
- 📖 Décoder l'en-tête et la charge utile en JSON mis en forme
- 🏷️ Expliquer les claims enregistrés en langage clair
- ⏳ exp, nbf et iat affichés en date exacte plus temps relatif
- ✅ Vérification de signature HS256/384/512 avec un secret
- 🔏 Vérification de signature RS/PS/ES avec une clé publique PEM
- 🚦 Badge de statut : expiré, actif ou pas encore valide
- ⚠️ Avertissement quand l'en-tête alg est none, soit un jeton non sécurisé
Quand l'utiliser
- Pour déboguer une erreur 401 dans votre flux de connexion
- Pour comprendre pourquoi un jeton ne fonctionne plus soudainement
- Pour vérifier un jeton d'un fournisseur d'identité tiers avant de lui faire confiance
- Pour inspecter les claims contenus dans un jeton de rafraîchissement
Confidentialité : jetons et clés sont traités entièrement dans votre navigateur et jamais envoyés — coller de vrais identifiants de production est donc sans risque.
Ce que représentent réellement les trois segments
Un JWT est composé de trois segments encodés en base64url, séparés par des points :
- L’en-tête précise l’algorithme utilisé ; la charge utile contient les revendications (« claims ») ; la signature lie les deux sous une clé secrète ou une clé publique/privée.
- Aucune donnée dans l’en-tête ou la charge utile n’est chiffrée — toute personne détenant le jeton peut lire toutes les revendications. C’est un choix délibéré : le JWT est un conteneur signé, pas un mécanisme sécurisé.
- La vérification exige la clé de signature et doit s’effectuer sur votre serveur ; cette page procède uniquement à un décodage local afin que vous puissiez inspecter les revendications sans transmettre le jeton à un service tiers.
Décoder n’est pas vérifier
Les claims deviennent des dates
L'en-tête et le payload s'affichent en JSON lisible tandis que les claims enregistrés comme exp, nbf et iat deviennent de vraies dates, avec un verdict clair : expiré, actif ou pas encore valide.
Vérification HS, RS, PS et ES
Vérifiez HS256/384/512 contre un secret partagé en clair ou en base64, et les jetons RS, PS ou ES contre une clé publique PEM, le tout via Web Crypto dans la page.
Jetons malformés expliqués
Les problèmes de structure sont signalés précisément — point manquant, en-tête invalide, payload illisible — et les jetons qui revendiquent l'algorithme none sont signalés au lieu d'être acceptés.
Questions fréquentes
Mon token est-il envoyé à un serveur ?⌄
Non. Le décodage et la vérification de signature se font entièrement dans votre navigateur via l’API Web Crypto. Votre token, secret et clés ne quittent jamais votre appareil : vous pouvez inspecter des tokens de production en toute sécurité.
Quels algorithmes de signature pouvez-vous vérifier ?⌄
HS256/384/512 avec un secret partagé (UTF-8 ou base64url), ainsi que les familles asymétriques RS256/384/512, PS256/384/512 et ES256/384/512 en collant la clé publique PEM. Pour les tokens asymétriques, seule la clé publique est nécessaire, jamais la clé privée.
Un JWT n’est pas chiffré — qu’est-ce que cela signifie ?⌄
Un JWT standard est seulement encodé en base64url et signé, pas chiffré : n’importe qui peut lire sa charge utile. Ne mettez jamais de secrets dans un JWT. La signature prouve seulement que le token n’a pas été altéré par quelqu’un sans la clé.
Il indique « signature invalide » — le jeton a-t-il été falsifié ?⌄
Généralement l’un de ces trois motifs banaux : le jeton a été signé avec la clé secrète d’un autre environnement ; l’émetteur a renouvelé ses clés et la vôtre est obsolète ; ou bien l’algorithme indiqué dans l’en-tête ne correspond pas à celui attendu par votre vérificateur (la célèbre astuce <code>alg=none</code>). Décodiez d’abord l’en-tête ici, puis comparez-le à la clé réellement utilisée par votre backend.