JWT Generator
Understand JWT Generator
Construit un JSON Web Token à partir d'un en-tête et d'une charge utile que vous fournissez, et le signe en HMAC-SHA-256, 384 ou 512 avec votre secret, entièrement dans votre navigateur.
How it works
Le JSON de l'en-tête et celui de la charge utile sont encodés en Base64URL et joints par un point, et cette chaîne est l'entrée de signature. WebCrypto en calcule un HMAC avec votre secret, et le résultat est encodé en Base64URL puis ajouté comme troisième segment. La vérification est l'opération identique : un serveur recalcule le HMAC sur les deux premiers segments et compare. Parce que HMAC est symétrique, quiconque est capable de vérifier un jeton est aussi capable d'en fabriquer un.
When to use it
- Produire un jeton de test avec des revendications précises pour éprouver un chemin d'autorisation.
- Reproduire un jeton émis par un fournisseur d'identité, afin de déterminer si un bug se situe à l'émission ou à la vérification.
- Vérifier que votre code de vérification refuse réellement un exp expiré, un aud erroné ou un nbf situé dans le futur.
- Créer un jeton de référence pour un test d'intégration où le secret de signature est une valeur de test connue.
- Voir exactement quels octets sont signés, quand une implémentation de signature écrite à la main diverge d'une bibliothèque.
Watch out for
- Un jeton ne vaut que par son secret. Ne collez pas un secret de signature de production dans une page web — considérez comme brûlé un secret passé par un navigateur, et renouvelez-le.
- La sécurité de HS256 est plafonnée par la clé, pas par l'algorithme. Un secret court ou tiré du dictionnaire est cassé hors ligne à partir d'un seul jeton capturé, parce que le jeton lui-même donne à l'attaquant tout ce qu'il faut pour tester ses hypothèses. Utilisez au moins 32 octets aléatoires.
- exp, iat et nbf s'expriment en secondes depuis l'époque Unix. Une valeur en millisecondes dans exp produit un jeton qui n'expire pratiquement jamais, et les vérificateurs conformes l'accepteront sans broncher.
- Signer n'est pas chiffrer. Chaque revendication de la charge utile est lisible par quiconque détient le jeton ; un JWT signé protège les revendications contre la modification, jamais contre la lecture.
Not the right tool for: Émettre des jetons que votre système de production acceptera. Signez ceux-là dans votre service, et préférez un algorithme asymétrique tel que RS256 ou EdDSA, afin que les vérificateurs ne détiennent qu'une clé publique et ne puissent pas forger leurs propres jetons.
Frequently Asked Questions
Comment générer un jeton JWT ?
Choisissez un algorithme, modifiez le JSON de la charge utile, ajoutez des revendications telles que iss, sub, aud et une expiration, puis saisissez votre secret de signature et cliquez sur Signer le JWT. L'en-tête, la charge utile et la signature HMAC sont encodés en base64url sans remplissage et joints par des points.
Est-il prudent de saisir mon secret JWT ici ?
Le secret est utilisé par crypto.subtle.sign dans l'onglet de votre navigateur. Il n'est jamais envoyé à un serveur, jamais journalisé et jamais stocké. Traitez malgré tout un secret de signature de production avec précaution : pour vos tests, générez un secret jetable plutôt que de coller celui en service.
Pourquoi RS256 et ES256 ne sont-ils pas proposés ?
Ces algorithmes signent avec une clé privée, et coller une clé privée de production dans une page web est une habitude qu'il vaut mieux ne pas enseigner. Seuls les algorithmes HMAC sont proposés ici. La valeur alg « none » est elle aussi absente — c'est l'attaque de contournement classique des JWT, pas une fonctionnalité.
How to Use JWT Generator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.