Décodeur JWT

Décodez instantanément l'en-tête, le payload et la signature d'un JWT (JSON Web Token). Consultez le statut des claims exp, iat, nbf. 100% côté client, sans téléversement ni suivi.

Publicité
Publicité

Décodez les JWTs sans téléverser vos tokens

Décodage instantané de JWT avec indicateurs de statut des claims et JSON formaté — directement dans votre navigateur. Pas de téléversement, pas d'inscription, pas de limites.

100% privé
Décodage instantané
Gratuit pour toujours

Comment l'utiliser

  1. 1

    Collez Votre JWT

    Copiez un JWT et collez-le dans la zone de saisie en haut.

  2. 2

    Examinez l'En-tête et le Payload

    L'en-tête décodé (algorithme) et le payload (claims) apparaissent sous forme de JSON formaté.

  3. 3

    Vérifiez le Statut des Claims

    Les claims iat, nbf et exp sont mis en évidence — les jetons expirés ou pas encore valides sont signalés en rouge ou en jaune.

  4. 4

    Copier si Besoin

    Utilisez le bouton Copier pour copier le JSON de l'en-tête ou du payload décodé.

Pourquoi Utiliser ce Décodeur JWT ?

Décodage Local Instantané

L'en-tête et le payload sont décodés et formatés en JSON dès que vous collez le jeton — aucun bouton à cliquer.

Indicateurs de Statut des Claims

Les claims `exp`, `nbf` et `iat` sont analysés et comparés à l'heure actuelle, avec un code couleur clair pour les jetons expirés, pas encore valides et actifs.

Compatible UTF-8

Décode correctement les payload Base64URL contenant des caractères non ASCII, y compris les emoji et le texte international.

Publicité

Understanding JSON Web Tokens (JWT)

What is a JWT?

A JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. JWTs are commonly used for authentication and authorization in web applications. After a user logs in, the server issues a JWT containing claims about the user (such as their user ID and roles). The client includes this JWT in the Authorization header of subsequent requests, allowing the server to verify the user's identity without storing session state.

A JWT consists of three parts separated by dots: `header.payload.signature`. The header specifies the token type (JWT) and the signing algorithm (e.g., HS256, RS256). The payload contains the claims — statements about the user and additional metadata. The signature is used to verify that the token hasn't been tampered with. Only the header and payload are Base64URL-decoded to read the claims; the signature is a binary value used only for verification.

Publicité

Decoding vs. verifying a JWT

Decoding a JWT means Base64URL-decoding the header and payload to read the claims. This does not require any secret key — anyone can decode a JWT. Decoding tells you what the token claims, but it does not prove that the claims are true or that the token was issued by a trusted party.

Verifying a JWT means checking the signature using the secret key (for HMAC algorithms) or public key (for RSA/ECDSA algorithms). This confirms that the token was issued by the holder of the secret/private key and that it hasn't been modified since. Only verified tokens should be trusted for security decisions. Our tool decodes JWTs but does not verify them — for verification, use a library like jsonwebtoken (Node.js) or PyJWT (Python).

Common JWT claims

Registered claims (defined in RFC 7519): `sub` (subject — the user ID), `iss` (issuer), `aud` (audience), `exp` (expiration time), `nbf` (not before), `iat` (issued at), `jti` (JWT ID). Private claims: custom claims agreed upon by the parties, such as `role`, `permissions`, `email`, or `name`. Our tool displays all claims in the payload as formatted JSON.

Publicité

Cas d'Utilisation Courants

Débogage de l'Authentification

Inspectez les claims d'un JWT émis par votre serveur d'authentification pour confirmer l'identifiant utilisateur, les rôles ou l'expiration.

Développement d'API

Vérifiez rapidement que le JWT généré côté serveur contient le payload attendu avant de l'envoyer au client.

Apprentissage de la Structure JWT

Voyez exactement comment un JWT est structuré — en-tête, payload, signature — sans écrire de code.

Résolution de Jetons Expirés

Voyez instantanément si une erreur 401 est causée par un claim `exp` expiré ou un claim `nbf` pas encore valide.

How does this compare to other JWT decoders?

Une comparaison côte à côte des outils populaires de décodage JWT.

FonctionnalitéNovaToolsJWT.ioJWT.ms
Confidentialité (sans téléversement)100% localTéléverse vers le serveurTéléverse vers le serveur
PrixGratuit illimitéGratuit avec publicitésGratuit
Statut du claim (exp/nbf/iat)Color-coded
Pretty-printed JSON
Décodage sûr UTF-8Limité
Compatible mobileLimitéLimité
Fonctionne hors ligneAprès chargement

JWT.io and JWT.ms upload your token to their servers for decoding. Our tool decodes everything locally — your JWT never leaves your browser.

JWT Quick Reference

Key facts about JSON Web Tokens.

Token Structure

header.payload.signature

Three Base64URL-encoded parts separated by dots.

Exemple:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123
header

JSON object with algorithm (alg) and token type (typ).

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

JSON object with claims about the user and token.

Exemple:{"sub":"123","exp":1735689600}
signature

HMAC/RSA/ECDSA signature. Not decoded, only verified.

Exemple:HMAC-SHA256(header.payload, secret)

Registered Claims

sub

Subject — identifie l'utilisateur ou l'entité.

Exemple:"sub":"user-123"
iss

Issuer — identifie qui a émis le token.

Exemple:"iss":"auth.example.com"
aud

Audience — destinataire prévu du token.

Exemple:"aud":"api.example.com"
exp

Expiration time (Unix timestamp in seconds).

Exemple:"exp":1735689600
iat

Issued at (Unix timestamp in seconds).

Exemple:"iat":1735603200
nbf

Not before — le token n'est pas valide avant cette heure.

Exemple:"nbf":1735603200

Algorithms

HS256

HMAC with SHA-256. Symmetric — same secret for sign and verify.

Exemple:{"alg":"HS256"} + shared secret
RS256

RSA signature with SHA-256. Asymmetric — private key signs, public key verifies.

Exemple:{"alg":"RS256"} + RSA 2048-bit key pair
ES256

ECDSA with P-256 and SHA-256. Asymmetric — smaller signatures than RSA.

Exemple:{"alg":"ES256"} + EC P-256 key pair
none

Pas de signature. NON SÉCURISÉ — ne jamais utiliser en production.

Exemple:{"alg":"none"} — CRITICAL vulnerability

Questions fréquentes

Cet outil vérifie-t-il la signature du JWT ?
Non. Cet outil se contente de décoder le jeton — il ne vérifie pas la signature. Le décodage vous indique ce que le jeton déclare, mais n'importe qui peut créer un jeton avec n'importe quelles déclarations. La vérification nécessite le secret de signature ou la clé publique.
Est-il sûr de coller mon JWT ici ?
Oui. Tout le décodage se fait localement dans votre navigateur. Le jeton n'est jamais envoyé à un serveur. Cependant, vous devriez éviter de coller des jetons dans des sites non fiables et ne jamais partager de JWT dans des captures d'écran ou des tickets de support.
Que signifient les claims iat, nbf et exp ?
`iat` (issued at) indique quand le jeton a été créé. `nbf` (not before) est le moment le plus tôt à partir duquel le jeton est valide. `exp` (expiration) est le moment où le jeton cesse d'être valide. Tous sont stockés sous forme d'horodatages Unix en secondes.
Pourquoi mon jeton a-t-il trois parties ?
Un JWT comporte trois parties encodées en Base64URL séparées par des points : `header.payload.signature`. L'en-tête décrit l'algorithme, le payload contient les claims et la signature sert à vérifier l'intégrité.
Qu'est-ce que l'encodage Base64URL ?
Base64URL est une variante de Base64 qui utilise `-` à la place de `+` et `_` à la place de `/`, et omet le remplissage `=`. Cela rend la chaîne encodée sûre à utiliser dans les URL et le JSON.
Cet outil vérifie-t-il la signature JWT ?
Non. Cet outil décode uniquement le jeton — il ne vérifie pas la signature. Le décodage vous indique ce que le jeton prétend, mais n'importe qui peut créer un jeton avec n'importe quelles prétentions. La vérification nécessite le secret de signature (pour les algorithmes HMAC comme HS256) ou la clé publique (pour les algorithmes RSA comme RS256, ou ECDSA comme ES256). Ne faites jamais confiance aux prétentions d'un JWT pour des décisions de sécurité sans vérifier d'abord sa signature. Si vous devez vérifier un JWT, utilisez une bibliothèque comme jsonwebtoken (Node.js), PyJWT (Python) ou jose (JavaScript/TypeScript) avec le bon secret ou la bonne clé.
Est-il sûr de coller mon JWT ici ?
Oui. Tout le décodage se fait localement dans votre navigateur à l'aide de JavaScript. Le jeton n'est jamais envoyé à un serveur, jamais stocké et jamais enregistré. Vous pouvez le vérifier en ouvrant l'onglet Réseau des DevTools de votre navigateur — aucune requête réseau n'est effectuée lorsque vous collez ou décodez un jeton. Cependant, vous devriez toujours éviter de coller des jetons sur des sites non fiables et ne jamais partager de JWT dans des captures d'écran, des tickets de support ou des canaux publics. Même si notre outil est sûr, d'autres décodeurs JWT en ligne peuvent téléverser votre jeton vers leur serveur.
Que signifient les claims iat, nbf et exp ?
These are registered claims defined in RFC 7519 that control the token's temporal validity. `iat` (issued at) is a Unix timestamp indicating when the token was created. `nbf` (not before) is a Unix timestamp indicating the earliest time the token is considered valid — before this time, the token should be rejected. `exp` (expiration) is a Unix timestamp indicating when the token expires — after this time, the token should be rejected. All three are stored as seconds since the Unix epoch (January 1, 1970, 00:00:00 UTC). Our tool parses these claims and shows a color-coded status: green for active, yellow for not-yet-valid, and red for expired.
Pourquoi mon token a-t-il trois parties ?
A JWT consists of three Base64URL-encoded parts separated by dots: `header.payload.signature`. The header describes the token type (JWT) and the signing algorithm (e.g., HS256, RS256). The payload contains the claims — statements about an entity (typically the user) and additional metadata. The signature is used to verify that the sender of the JWT is who it says it is and to ensure that the message wasn't changed along the way. To decode a JWT, you only need to Base64URL-decode the header and payload — the signature is not decoded, it's a binary value used only for verification.
Qu'est-ce que l'encodage Base64URL et en quoi diffère-t-il de Base64 ?
Base64URL is a variant of Base64 designed to be safe for use in URLs and filenames. It replaces the `+` character with `-` and the `/` character with `_`, and it omits the `=` padding character at the end. This is necessary because `+` and `/` have special meanings in URLs (they represent spaces and path separators, respectively). JWT uses Base64URL for encoding the header, payload, and signature. If you try to decode a JWT part with standard Base64, you may get an error because `-` and `_` are not valid standard Base64 characters.
Quels sont les claims JWT les plus courants ?
The most common registered claims are: `sub` (subject — the user ID), `iss` (issuer — who issued the token), `aud` (audience — who the token is intended for), `exp` (expiration time), `nbf` (not before), `iat` (issued at), and `jti` (JWT ID — a unique identifier for the token). Custom claims can also be included, such as `role`, `permissions`, `email`, or `name`. Our tool displays all claims in the payload as a formatted JSON object.
Puis-je décoder un JWT sans la clé secrète ?
Oui. Le décodage d'un JWT ne nécessite pas la clé secrète — il suffit de décoder en Base64URL l'en-tête et la charge utile. La clé secrète n'est requise que pour vérifier la signature, ce qui confirme que le jeton a été émis par une partie de confiance et n'a pas été altéré. C'est une source courante de confusion : le décodage n'est pas la même chose que la vérification. N'importe qui peut décoder un JWT, mais seule une personne avec la clé secrète peut le vérifier.
Que se passe-t-il si je colle un JWT invalide ?
L'outil affichera un message d'erreur indiquant ce qui s'est mal passé. Les erreurs courantes incluent : ne pas avoir exactement trois parties séparées par des points, contenir des caractères qui ne sont pas du Base64URL valide, ou avoir une charge utile qui n'est pas du JSON valide après décodage. Le message d'erreur vous dira exactement ce qui ne va pas afin que vous puissiez corriger l'entrée.
L'outil fonctionne-t-il sur les appareils mobiles ?
Oui. L'outil est entièrement réactif et fonctionne sur iOS Safari et Android Chrome. L'interface s'adapte aux petits écrans avec une disposition verticale — saisie en haut, en-tête et charge utile décodés au milieu, et statut des claims en bas. Le décodage s'exécute localement sur votre téléphone, il fonctionne donc même sur des connexions réseau lentes.
Puis-je utiliser cet outil pour des projets commerciaux ?
Oui. L'outil est gratuit pour un usage personnel et commercial, sans filigrane, sans attribution requise et sans limite d'utilisation. Vous conservez la pleine propriété de vos jetons. Aucune inscription, aucune clé API et aucun abonnement requis.

Votre confidentialité est notre priorité

Cet outil fonctionne entièrement dans votre navigateur. Vos fichiers ne sont pas téléversés vers un serveur, ni stockés, ni analysés.

  • Nous ne téléversons, ne stockons ni n'analysons vos fichiers.
  • Tout ce que vous traitez reste sur votre appareil.
  • Il n'y a pas de traitement côté serveur, ni de stockage cloud, ni d'analyse.

Même si votre connexion internet tombe, vos fichiers restent en sécurité.

Vous pourriez aussi aimer

Guides utiles

Publicité