L'écosystème Volade — Outil Web

Encodeur / décodeur JWT

Decoder un JWT instantanément : en-tête, payload et signature affichés en JSON indenté avec les claims identifiés, vérification de la signature HS256 avec un secret ou RS256 / ES256 avec une clé publique PEM, encodage et signature d'un nouveau jeton, conversion des expirations en dates lisibles. Gratuit, sans inscription et 100 % local : votre jeton ne quitte jamais votre navigateur.

6 modes de traitement0 octet envoyé sur le serveur∞ jetons, sans limite de taille
L'outil

Votre décodeur JWT en ligne

Collez un jeton, un header, un payload ou une chaîne tirée d'un en-tête Authorization : le décodage se met à jour à chaque frappe, sans bouton « Convertir ».

Encodeur / décodeur JWT

En ligne Développement, Code & Data
Se connecter
Raccourcis : Ctrl+Entrée calculer
Prêt.

                  

                  
La signature n'est pas déchiffrée : elle se vérifie avec le secret ou la clé publique dans l'onglet « Vérifier ».
ClaimValeurTypeRôle
Décodage, vérification et signature s'exécutent pendant la saisie · Ctrl+Entrée recalcule l'onglet actif · WebCrypto natif, aucune bibliothèque externe · 100 % local, rien ne quitte votre appareil.
0,0 0Commentaire Tous les outils
Gratuit ou Premium ?

Le décodeur JWT est gratuit et illimité : pas de compte, rien à installer, aucun envoi réseau. Le Premium débloque l'ensemble de l'écosystème Volade.

GratuitDécodage en temps réel du header, du payload et des claims
GratuitVérification HMAC HS256 / HS384 / HS512 et clé publique PEM
GratuitEncodage et signature de nouveaux jetons, conversion des expirations
PremiumSynchronisation cloud chiffrée de l'historique et des snippets
PremiumAccès API et scripts partagés entre les outils de l'écosystème
Débloquer le Premium
Fonctionnalités

Decoder, vérifier et encoder un JWT, sans limite

Un seul moteur couvre la lecture, le contrôle d'intégrité et la production de jetons — sans jamais quitter votre appareil.

Decoder header, payload et signature

Collez un jeton — même en majuscules, même avec un préfixe Bearer ou des guillemets — et l'en-tête et le payload apparaissent en JSON indenté pendant que vous tapez. Chaque claim est listé avec sa valeur, son type et son rôle, les horodatages sont convertis en ISO 8601 et en durée restante, et la signature transportée est affichée telle quelle.

Decoder maintenant

Vérifier une signature pour de vrai

Le contrôle n'est pas cosmétique : le MAC est recalculé sur la chaîne exacte en-tête.payload, puis comparé à la signature en comparaison constante. HS256, HS384 et HS512 utilisent le secret partagé ; RS256, RS384, RS512, ES256, ES384 et PS512 utilisent la clé publique PEM au format SPKI. Le verdict est explicite : valide, invalide, ou information manquante.

Vérifier une signature

Confidentialité totale

Aucune requête réseau : décodage, vérification et signature s'exécutent intégralement dans votre navigateur, même hors connexion. Parfait pour un jeton de production, une clé de staging ou un jeton de session contenant un identifiant que vous ne voulez confier à personne — y compris à l'outil lui-même.

En savoir plus
Comment ça marche

Decoder, vérifier ou produire un jeton en trois étapes

Aucune installation, aucune inscription : l'outil est toujours prêt, sur mobile comme sur bureau.

Collez le jeton

Récupérez la valeur après « Authorization: Bearer » ou depuis votre cookie, collez-la dans l'onglet « Décoder » : les trois segments sont séparés et décodés immédiatement. Un préfixe Bearer, des guillemets ou un retour à la ligne sont retirés automatiquement.

Contrôlez l'intégrité

Passez dans « Vérifier », choisissez l'algorithme annoncé par l'en-tête, saisissez le secret ou la clé publique : l'outil recalculle le MAC et affiche le verdict. C'est l'étape que tout le monde saute — et la seule qui protège réellement le contenu.

Produisez un jeton

Dans « Encoder », modifiez le payload, ajustez exp et iat avec l'onglet « Expiration », signez avec HS256 : le jeton apparaît prêt à copier. L'historique local conserve vos derniers jetons pour les recharger d'un clic.

Référence rapide

Un JWT en un coup d'œil

Ce que la plupart des développeurs vérifient avant de lire un jeton — avec l'anatomie complète dans l'onglet « Anatomie & référence ».

SegmentRôleEncodageExemple
1en-tête (alg, typ)Base64URLeyJhbGciOiJIUzI1NiJ9
2payload (claims)Base64URLeyJzdWIiOiIxMjM0NTY3ODkwIn0
3signatureBase64URLSflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV…
expexpirationUnix (s)1793827200 → 2026-11-04
HS256HMAC + SHA-256secret partagé32 octets minimum
RS256RSA + SHA-256clé publique PEMvérification asymétrique
« + » en Base64—Base64URLremplacé par « - »
« / » en Base64—Base64URLremplacé par « _ »

Que signifie « decoder un JWT » ?

Decoder un JWT (« jwt decode », « decode jwt online ») revient à couper la chaîne aux deux points, puis à décoder chaque segment en Base64URL pour retrouver le JSON d'origine. Aucune clé n'est nécessaire : l'en-tête et le payload sont simplement encodés, pas chiffrés. C'est exactement l'intention derrière « jwt payload decoder » ou « decode jwt without verify » — voir ce que contient le jeton, sans prétendre qu'il est authentique.

Attention à bien distinguer les deux gestes. Lire un JWT ne prouve rien : n'importe qui peut fabriquer un jeton au payload séduisant et le signer avec son propre secret. Vérifier la signature prouve que le contenu n'a pas été modifié par un tiers. Un décodeur qui affiche « admin: true » sans contrôle de signature vous raconte une histoire, pas un fait.

Les trois segments d'un JWT

La chaîne se découpe exactement en trois parties séparées par des points : header.payload.signature. L'en-tête contient au minimum alg et typ, parfois kid pour indiquer quelle clé a servi. Le payload contient les claims, ces paires clé-valeur dont le registre est tenu par l'IANA. La signature couvre les deux premiers segments concaténés exactement comme ils sont écrits — la moindre modification d'un espace ou d'un caractère casse la comparaison.

Toute la difficulté vient du fait que ces segments sont en Base64URL et non en Base64 : le signe plus devient un tiret, la barre oblique devient un souligné, et le remplissage = disparaît. Un décodeur Base64 classique échouera donc sur un JWT valide. Le tableau « Base64URL contre Base64 classique » de l'onglet référence montre précisément ces substitutions.

Comment vérifier une signature : HS256, RS256, ES256

Pour un algorithme HMAC — HS256, HS384, HS512 — le même secret sert à signer et à vérifier : l'outil recalcule HMAC(secret, base64url(header) + "." + base64url(payload)) et compare le résultat à la signature transportée. C'est le cas le plus courant, et aussi le plus dangereux : tout service qui détient le secret peut émettre un jeton. Un secret de moins de 32 octets, réutilisé entre environnements, suffit à compromettre toute la chaîne.

Pour les algorithmes asymétriques — RS256, RS384, RS512, ES256, ES384, ES512, PS256 — vous n'avez besoin que de la clé publique pour vérifier, ce qui permet de contrôler un jeton émis par un tiers sans jamais partager son secret de signature. Collez la clé au format PEM -----BEGIN PUBLIC KEY----- (SPKI) ; le résultat brut d'un export OpenSSL est directement utilisable. Pour ES256, la signature est en format r||s brut, celui que WebCrypto attend.

Il faut enfin se méfier de l'alg confusion : si votre service attend RS256 mais accepte un jeton dont l'en-tête déclare HS256, un attaquant signera avec la clé publique — devenue clé HMAC — et passera la vérification. Figez l'algorithme attendu côté serveur, ne le lisez jamais du jeton lui-même.

exp, iat, nbf : les horodatages qui piègent

Ces trois claims sont des secondes Unix, sans milliseconde et sans fuseau : iat à 1516239022 signifie 2018-01-17T21:30:22Z. Deux erreurs reviennent sans cesse : comparer à une date en millisecondes (valeur dix mille fois trop grande) et interpréter un timestamp comme local plutôt qu'en UTC. L'onglet « Expiration » convertit dans les deux sens, affiche l'ISO 8601, la date locale et le temps restant ou écoulé — de quoi repérer immédiatement un jeton « déjà expiré » à la seconde d'horloge près.

Prolonger la durée de vie n'élève pas le niveau de sécurité : un exp repoussé change la valeur affichée, pas la signature. Si vous devez réémettre, re-signez le jeton avec le secret ou la clé privée — c'est exactement le rôle de l'onglet « Encoder ».

Base64URL : pourquoi les décodeurs classiques échouent

Base64URL (RFC 4648 §5) utilise l'alphabet A-Z a-z 0-9 - _ et n'admet pas de remplissage. Un payload de 20 caractères produit souvent une longueur non multiple de quatre après suppression du = : c'est normal, pas une corruption. Les caractères - et _ sont ambigus pour un œil humain, ce qui explique la moitié des « jetons cassés » rapportés. Notre décodeur accepte les deux alphabets, la casse mixte, le remplissage optionnel et un préfixe Bearer.

Sécurité : ce qu'un JWT ne fait pas

Un JWT n'offre ni confidentialité ni révocation. Le payload est lisible par tous : jamais d'e-mail, de rôle interne ou de donnée personnelle que vous n'accepteriez d'envoyer en clair. Et un jeton signé reste valide jusqu'à exp même après déconnexion — il faut une liste de révocation, un jti suivi côté serveur, ou des durées de vie courtes avec refresh token. Un bon réflexe : exp court (10 à 15 minutes), iat contrôlé, nbf aligné sur iat, aud et iss vérifiés à réception.

Recommandé pour

Développeurs back-end et front-end (OAuth 2.0, OpenID Connect, API REST), intégrateurs et DevOps (infrastructure d'identité, JWKS, rotation de clés), test·euses et pentesteurs (réécriture de claims, alg confusion, expiration), administrateur·es de systèmes (débogage d'un 401 inexplicable), étudiants (comprendre Base64URL et WebCrypto), et toute personne qui a besoin d'un décodeur JWT en ligne rapide, complet et confidentiel — avec pour compléments l'encodeur décodeur Base64, l'encodeur décodeur URL et le formateur JSON.

FAQ

Questions fréquentes sur le décodeur JWT

Tout ce que vous voulez savoir avant de décoder, vérifier ou signer un jeton.

Comment decoder un JWT en ligne ?

Collez le jeton dans l'onglet « Décoder » : l'en-tête, le payload et la signature sont séparés au premier regard, puis chaque partie Base64URL est décodée en JSON indenté. Les claims standards (iss, sub, exp, iat, nbf, jti) sont listés dans un tableau avec leur type et leur rôle, et les horodatages sont affichés en ISO 8601 avec le temps restant ou écoulé.

Comment vérifier la signature d'un JWT ?

Dans l'onglet « Vérifier », choisissez l'algorithme annoncé par le jeton. Pour HS256, HS384 et HS512, saisissez le secret partagé : l'outil recalcule le HMAC sur la chaîne en-tête.payload et le compare à la signature transportée. Pour RS256, RS384, RS512, ES256, ES384 et PS256, collez la clé publique PEM au format SPKI. Le résultat affiche « Signature valide » ou « Signature invalide » avec le motif.

Peut-on encoder et signer un JWT ici ?

Oui. Dans l'onglet « Encoder », éditez l'en-tête JSON et le payload JSON, choisissez l'algorithme et saisissez le secret partagé : le jeton signé apparaît instantanément, prêt à copier ou à télécharger en jwt.txt. Les algorithmes HS256, HS384, HS512 et none sont pris en charge pour la signature, le reste des algorithmes sert à la vérification.

Qu'est-ce qu'un JWT et à quoi servent ses trois parties ?

Un JWT (JSON Web Token) est une chaîne de trois segments séparés par des points : l'en-tête déclare l'algorithme et le type, le payload transporte les claims, et la signature garantit que rien n'a été modifié. Les deux premiers segments sont du JSON encodé en Base64URL — de la transformation, pas du chiffrement : n'importe qui peut les lire. Seule la signature protège l'intégrité.

Comment lire les claims exp, iat et nbf ?

exp, iat et nbf sont des horodatages Unix en secondes, pas des dates ISO. L'onglet « Décoder » les convertit automatiquement en ISO 8601 et en durée relative (« expire dans 2 j 03:00:00 »), et l'onglet « Expiration » convertit dans les deux sens entre un timestamp et une date lisible, ce qui permet de vérifier un jeton apparemment invalide ou de fabriquer un délai de vie exact.

Quelle est la différence entre Base64 et Base64URL ?

Base64URL remplace le signe plus par un tiret et la barre oblique par un souligné, puis supprime le remplissage « = ». C'est obligatoire dans un JWT car un point, un plus ou une barre casseraient la coupe en trois segments. C'est aussi ce qui fait que certains décodeurs classiques échouent sur un payload pourtant parfaitement valide.

Un JWT décodé est-il un mot de passe ?

Non. Le payload d'un JWT est simplement Base64URL, donc entièrement lisible sans clé : ne jetez jamais un identifiant, un e-mail, un rôle ou une permission dedans. La signature ne chiffre pas le contenu, elle l'authentifie. Pour garder un secret côté client, il faut un chiffrement symétrique séparé — le JWT n'est pas fait pour ça.

L'outil envoie-t-il mon jeton sur un serveur ?

Non : décodage, vérification et signature s'exécutent dans votre navigateur avec WebCrypto, sans requête réseau ni compte. C'est indispensable pour un jeton de production, qui contient souvent un identifiant de session. L'historique reste dans le stockage local de votre appareil et peut être vidé d'un clic.

Décodeur JWT 100 % local : votre jeton ne quitte jamais votre ordinateur

Contrairement aux décodeurs JWT en ligne classiques, aucune chaîne n'est transmise : le décodage, la vérification de signature et l'encodage s'exécutent entièrement dans votre navigateur via WebCrypto, sans bibliothèque tierce ni requête réseau. C'est ce qui permet d'inspecter un jeton de session réel, une clé de staging ou un token de service interne sans risque, même hors connexion ou sur un réseau public. L'historique et la dernière saisie sont conservés localement (localStorage) et restent sur votre appareil.

La licence Premium Volade ajoute une synchronisation cloud facultative, chiffrée, indépendante de l'outil — le reste demeure gratuit et illimité, sans inscription.

Une licence premium, tous vos outils web

Décodeur JWT, encodeur décodeur URL, encodeur décodeur Base64, formateur JSON, générateurs, éditeurs PDF et dizaines d'outils gratuits — et tout l'écosystème Volade avec une seule licence.

Une licence, tout l'écosystème premium Navigateur · CMS · Bureau · Mobile · Scripts · API · Outils · Database
Une licence, tout l'écosystème Passer au premium Se connecter