Aller au contenu
Quaestio

Décodeur JWT

Collez un jeton pour voir ce qu’il contient et quand il expire. Si vous avez la clé, vous pouvez aussi vérifier la signature.

Le décodage se fait dans votre navigateur. Rien n’est envoyé.

Validité

…

Décodé, non vérifié : n’importe qui peut créer un jeton avec ce contenu. Saisissez la clé ci-dessous pour vérifier la signature.

En-tête

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

Charge utile

{
  "iss": "https://example.com",
  "sub": "1234567890",
  "aud": "quaestio",
  "name": "Ada Lovelace",
  "iat": 1757000000,
  "nbf": 1757000000,
  "exp": 4102444800,
  "jti": "4f1c2a9e"
}

Champs et claims

algalgorithme de signature
HS256
typtype de jeton
JWT
issémetteur
https://example.com
subsujet, généralement l’identifiant de l’utilisateur
1234567890
audaudience à laquelle le jeton est destiné
quaestio
expheure d’expiration
4102444800
nbfpas valide avant
1757000000
iatémis le
1757000000
jtiidentifiant unique du jeton
4f1c2a9e
Signature
32 octets

Vérifier la signature

La clé est utilisée uniquement dans votre navigateur et n’est pas enregistrée.

Intégrer

Intégrer cet outil à votre site

Copiez le code et collez-le là où l’outil doit apparaître, par exemple dans un article de blog ou sur une page d’école. C’est gratuit, le cadre ne contient pas de publicité et l’outil calcule dans le navigateur du visiteur.

Comment ça marche

Un JSON Web Token (JWT, RFC 7519) comporte trois parties séparées par des points : l’en-tête, la charge utile et la signature. L’en-tête et la charge utile sont du JSON encodé en base64url, une variante de base64 qui utilise - et _ au lieu de + et / et omet le remplissage. Tout le monde peut en lire le contenu ; il n’est pas chiffré.

L’en-tête indique l’algorithme (alg) et souvent le type (typ) et l’identifiant de clé (kid). La charge utile contient des claims, des affirmations sur l’utilisateur ou la session. La norme en enregistre sept : iss (émetteur), sub (sujet), aud (audience), exp (expiration), nbf (pas avant), iat (émis le) et jti (identifiant du JWT). Les autres claims sont laissés au choix de l’émetteur.

Les heures dans exp, nbf et iat sont des secondes depuis le 1er janvier 1970 UTC. Un jeton ne doit pas être accepté à partir de son heure exp, ni avant son heure nbf. Le décodeur les compare à l’horloge de votre appareil : une horloge qui n’est pas à l’heure donne un statut erroné.

Décoder n’est pas vérifier. La signature montre que le jeton a été émis par quelqu’un qui détient la clé et que le contenu n’a pas été modifié, mais cela ne peut être contrôlé qu’avec la clé. HS256, HS384 et HS512 utilisent un secret partagé (HMAC). RS et PS utilisent RSA, ES des courbes elliptiques (ECDSA avec P-256, P-384 ou P-521) et EdDSA Ed25519 ; ceux-ci se vérifient avec la clé publique au format PEM ou JWK, que les émetteurs publient souvent sous forme de JWK Set.

Un jeton avec alg none n’a pas de signature et ne doit jamais être accepté par un serveur. Plusieurs vulnérabilités connues venaient de bibliothèques qui acceptaient none, ou qui laissaient un attaquant remplacer RS256 par HS256 et signer avec la clé publique utilisée comme secret.

Un jeton sert souvent de clé d’accès à un compte. Ici, tout se passe dans votre navigateur avec sa cryptographie intégrée (WebCrypto), et ni le jeton, ni le secret, ni la clé ne sont envoyés où que ce soit. Malgré tout, ne collez jamais un jeton actif ou un secret dans un site auquel vous ne faites pas confiance, et ne collez jamais une clé privée : la vérification n’a besoin que de la clé publique.

Sources

Comment les outils sont vérifiés