Aller au contenu principal

Encodeur JWT

Générez un JSON Web Token signé en HMAC pour vos tests : saisissez l’en-tête et le payload en JSON, choisissez HS256, HS384 ou HS512 et votre secret ; alg et typ sont renseignés automatiquement.

  • Presse-papiers

Intégrer ce widget

Personnalisez le rendu, vérifiez l’aperçu puis copiez le code.

Aperçu

Type de code d’intégration

Code à copier

Responsive et redimensionné automatiquement par Bethemesh.

Algorithme

Pour des tests et du développement : n’utilisez pas un secret de production sur un appareil partagé ou non fiable.

Cet outil vous a-t-il été utile ?

Comment fonctionne cet outil ?

L’encodeur JWT fabrique un jeton signé en HMAC à partir d’un en-tête, d’un payload JSON et d’un secret partagé. Il sert aux développeurs et testeurs qui ont besoin d’un jeton sur mesure pour appeler une API locale, écrire un test automatisé ou reproduire un cas limite (jeton expiré, rôle manquant). Il est destiné au développement et aux tests, pas à l’émission de jetons de production.

L’outil vérifie que l’en-tête et le payload sont des objets JSON valides, puis fixe dans l’en-tête alg sur l’algorithme choisi et typ sur JWT. Chaque objet est sérialisé puis encodé en Base64URL (RFC 4648, sans remplissage =), et les deux segments sont joints par un point. Par exemple, l’en-tête {"alg":"HS256","typ":"JWT"} devient eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

La signature est un HMAC calculé sur la chaîne « en-tête.payload » avec SHA-256, SHA-384 ou SHA-512 selon l’algorithme (RFC 7518, section 3.2), via la Web Crypto API. Le résultat, encodé en Base64URL, forme le troisième segment du JWT (RFC 7519). La RFC 7518 impose une clé au moins aussi longue que la sortie du hash : 256 bits (32 octets) pour HS256, 384 bits pour HS384 et 512 bits pour HS512. Les dates exp, iat et nbf du payload doivent être exprimées en secondes Unix, par exemple "exp": 1767225600 pour le 1er janvier 2026 à 00:00 UTC.

Comment utiliser cet outil ?

  1. Rédigez l’en-tête et le payload

    Modifiez les deux zones JSON pré-remplies ou importez un fichier .json. Ajoutez vos claims : sub, iss, aud, exp, rôles ou champs personnalisés.

  2. Choisissez l’algorithme et le secret

    Sélectionnez HS256, HS384 ou HS512 et saisissez le secret partagé. Les champs alg et typ de l’en-tête sont mis à jour automatiquement.

  3. Générez et copiez le JWT

    Cliquez sur Générer : le jeton signé s’affiche et peut être copié. Une erreur s’affiche si le JSON est invalide ou si le secret est vide.

Signature JWT HMAC

Signature JWT HMAC

JWT = Base64URL(en-tête) + '.' + Base64URL(charge utile) + '.' + Base64URL(HMAC(secret, données à signer))

Cas d'utilisation

Tester une API protégée en local

Créez un jeton signé avec le secret de votre environnement de développement pour appeler une route protégée avec curl ou Postman, sans passer par tout le flux de connexion.

Reproduire un jeton expiré ou sans rôle

Modifiez exp dans le passé ou retirez un claim roles pour vérifier que votre middleware renvoie bien une erreur 401 ou 403 dans ces cas limites.

Préparer des fixtures de tests

Générez des jetons stables pour vos tests d’intégration, puis contrôlez-les avec le vérificateur JWT pour vous assurer que le secret et les claims correspondent à ceux attendus par le serveur.

Exemples

JWT signé en HS256

Entrée

Algorithme : HS256 ; En-tête JSON : {"alg":"HS256","typ":"JWT"} ; Charge utile JSON : {"sub":"1234567890","name":"John Doe","iat":1516239022} ; Secret : clé-de-test

Résultat

JWT signé : un JWT composé de trois segments Base64URL séparés par des points. La signature est calculée en HMAC-SHA256.

Conseils et bonnes pratiques

  • Utilisez un secret d’au moins 32 octets aléatoires pour HS256 : un mot court comme « secret » rend le jeton cassable par force brute hors ligne.
  • Écrivez exp et iat en secondes et non en millisecondes : Date.now() en JavaScript renvoie des millisecondes et produit une date en l’an 58 000 environ.
  • Ne mettez aucune donnée confidentielle dans le payload : il est simplement encodé en Base64URL et lisible par quiconque possède le jeton.

Sources et références

Questions fréquentes

Comment créer un JWT ?

Un JWT se construit en encodant en Base64URL un en-tête JSON et un payload JSON, puis en signant la chaîne « en-tête.payload » avec l’algorithme choisi. Ici, il suffit de saisir les deux objets, un secret et de cliquer sur Générer. En production, cette étape est réalisée par votre serveur d’authentification ou une bibliothèque comme jose ou jsonwebtoken.

Quelle longueur de secret choisir pour HS256 ?

La RFC 7518 exige une clé d’au moins 256 bits, soit 32 octets, pour HS256 ; 48 octets pour HS384 et 64 octets pour HS512. Un secret aléatoire de cette taille, par exemple produit par un générateur de jetons sécurisés, empêche les attaques par dictionnaire sur la signature.

Pourquoi seulement HS256, HS384 et HS512 ?

Ces algorithmes HMAC n’utilisent qu’un secret partagé, ce qui suffit pour créer des jetons de test. RS256 ou ES256 nécessiteraient une clé privée, qui ne devrait pas être manipulée dans un outil web. Si plusieurs parties doivent vérifier vos jetons sans pouvoir en émettre, préférez un algorithme asymétrique côté serveur.

Comment ajouter une date d’expiration à un JWT ?

Ajoutez le claim exp au payload avec un horodatage Unix en secondes, par exemple "exp": 1767225600. Un convertisseur de timestamp permet de calculer cette valeur à partir d’une date. Pensez aussi à iat pour indiquer la date d’émission.

Puis-je utiliser ces jetons en production ?

Non, l’outil est conçu pour le développement et les tests. En production, les jetons doivent être émis par un serveur qui garde le secret hors de portée des utilisateurs, applique des durées de vie courtes et gère la rotation des clés.

Mon secret est-il envoyé quelque part ?

Non. L’encodage et la signature HMAC sont calculés dans votre navigateur avec la Web Crypto API, sans requête réseau. Évitez néanmoins de saisir un secret de production, car quiconque le connaît peut signer des jetons acceptés par votre API.

Workflow recommandé

Découvrez les outils qui interviennent naturellement avant, après ou en complément de celui-ci.

Fonctionne bien avec

Décodez un JWT pour lire son en-tête, son payload, ses claims et ses dates d’expiration.

Sécurité & confidentialitéMis en avantUtiliser l’outil

Étape suivante

Vérifiez la signature d’un JWT avec un secret HMAC ou une clé publique JWK, JWKS ou PEM, puis contrôlez exp, nbf, iss et aud.

Sécurité & confidentialitéUtiliser l’outil