# Décodeur et vérificateur de JWT

Décodez un JSON Web Token, vérifiez son expiration et ses claims, et contrôlez sa signature avec un secret ou une clé publique.

https://codeknife.dev/fr/decodeur-jwt/

## Ce que fait l'outil

Décodez un JSON Web Token pour lire son en-tête et sa charge utile, voir s'il a expiré, et vérifier sa signature avec un secret ou une clé publique. Le jeton est décodé dans votre navigateur, cette page n'affiche aucune publicité, et le jeton et la clé ne sont jamais partagés ni enregistrés.

## Comment l'utiliser

1. Collez le jeton. Un préfixe `Bearer ` et les sauts de ligne sont ignorés.
2. Lisez la charge utile en JSON formaté ou compact. En dessous, vous voyez l'algorithme, le statut, et les heures `exp`, `nbf` et `iat` avec leur écart par rapport à maintenant.
3. Pour vérifier la signature, saisissez la clé : un secret pour HS256, HS384 et HS512, ou une clé publique (PEM ou JWK) pour RS, PS, ES et EdDSA.
4. Basculez l’en-tête et la charge utile entre JSON et Claims : Claims liste chaque claim avec sa signification et affiche les claims de temps sous forme de dates.
5. Ouvrez l’onglet Encoder pour écrire un en-tête et une charge utile et les signer avec un secret ou une clé privée (PEM PKCS#8 ou JWK). Rien sur cet onglet n’est enregistré, partagé ni ajouté à l’historique.

## Exemples

```
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```

La charge utile de ce jeton :

```json
{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}
```

Sa signature se vérifie avec le secret `your-256-bit-secret`.

## À savoir

- Décoder n'est pas vérifier : la charge utile est seulement encodée, pas chiffrée, et n'importe qui peut la lire.
- Votre serveur doit vérifier la signature avant de faire confiance à un claim.
- Un jeton avec l'algorithme `none` n'est pas signé : n'importe qui a pu le fabriquer.
- Traitez les jetons actifs comme des mots de passe. Préférez des jetons expirés ou de test quand vous en collez un ici.
- Un JWKS collé est parcouru à la recherche du `kid` du jeton, et un JWK seul est utilisé tel quel. La page ne récupère jamais d’ensemble de clés auprès de l’émetteur du jeton.
- Un secret HMAC plus court que son hachage (32, 48 ou 64 octets) peut être deviné : la page vous avertit. Un secret peut être lu comme du texte UTF-8 ou comme du Base64URL.

## Qu'est-ce qu'un JWT ?

Un JSON Web Token est formé de trois parties Base64URL jointes par des points : un en-tête qui nomme l'algorithme de signature, une charge utile avec des claims (à qui le jeton est destiné, quand il expire) et une signature. N'importe qui peut lire les deux premières parties ; seule la signature prouve que le jeton vient de quelqu'un qui détient la clé.

## Questions fréquentes

### Décoder un jeton, est-ce le vérifier ?

Non. Décoder ne fait que lire le contenu, qui n'est pas chiffré. Vérifier contrôle la signature avec la clé, et votre serveur doit le faire avant de faire confiance à un claim.

### Que signifient exp, nbf et iat ?

exp est l'instant d'expiration, nbf l'instant avant lequel le jeton n'est pas valide et iat l'instant d'émission, tous en secondes depuis 1970. Cet outil les compare à l'horloge de votre appareil.

### Puis-je coller ici un vrai jeton sans risque ?

Le jeton est décodé dans votre navigateur et jamais envoyé à nos serveurs, et cette page n'affiche aucune publicité. Traitez tout de même les jetons actifs comme des mots de passe : préférez des jetons expirés ou de test.