Générateur de JWT (HS256)
Créez des JSON Web Token signés en HS256 localement dans votre navigateur, sans rien téléverser.
Chargement de Générateur de JWT (HS256)… Si rien ne se passe, activez JavaScript.
Un JSON Web Token, ou JWT, est un format de jeton compact et signé utilisé partout dans l'authentification et l'autorisation modernes. Un JWT regroupe un en-tête et une charge utile de revendications dans deux segments encodés en Base64url, puis ajoute une signature qui prouve que le jeton n'a pas été altéré. Ce générateur construit pour vous un jeton HS256 entièrement valide : il assemble l'en-tête standard, encode votre charge utile et signe le résultat avec HMAC-SHA256 à l'aide d'un secret que vous fournissez. C'est le pendant naturel d'un décodeur de JWT, qui vous permet de créer les jetons que vous ne feriez autrement qu'inspecter.
Questions fréquentes
Mon secret ou ma charge utile sont-ils envoyés quelque part ?
Qu'est-ce que HS256 et comment fonctionne la signature ?
Que dois-je mettre dans la charge utile ?
Comment ajouter une heure d'expiration ?
HS256 est-il assez sûr pour la production ?
Pourquoi ai-je obtenu une erreur de JSON invalide ?
Puis-je décoder le jeton que je viens de générer ?
Le générateur fonctionne-t-il hors ligne ?
À propos de Générateur de JWT (HS256)
HS256 est l'algorithme JWT le plus utilisé. Il est symétrique, ce qui signifie que le même secret sert à la fois à créer et à vérifier la signature, ce qui simplifie les choses lorsqu'un seul service émet et contrôle ses propres jetons. Pour utiliser l'outil, collez une charge utile JSON contenant vos revendications (les plus courantes sont sub pour le sujet, iat pour l'heure d'émission et exp pour l'expiration), saisissez votre secret de signature et cliquez sur Générer. L'outil vérifie que votre charge utile est un JSON bien formé, signale une erreur claire si ce n'est pas le cas, et produit un jeton sous la forme familière en-tête.charge utile.signature prêt à copier.
La signature se déroule entièrement dans votre navigateur via l'API Web Crypto native, sans bibliothèque externe et sans requête réseau. Votre charge utile et, surtout, votre secret ne quittent jamais votre appareil, ne sont jamais journalisés et ne sont jamais transmis. Comme le secret est la seule chose qui doit rester confidentielle pour que HS256 soit sûr, faire le travail en local est exactement la bonne approche. L'outil fonctionne aussi entièrement hors ligne une fois la page chargée.
Le format de jeton caché à la vue de tous
Les JWT ont été normalisés dans le RFC 7519 en 2015, au sein d'une famille de spécifications JOSE (JavaScript Object Signing and Encryption). Le format est délibérément sûr pour les URL : chacun des trois segments est encodé en Base64url, qui remplace les caractères plus et barre oblique par tiret et tiret bas afin qu'un jeton puisse circuler dans une URL, un en-tête HTTP ou un cookie sans autre échappement.
Un détail qui surprend beaucoup de développeurs est que la charge utile d'un JWT signé n'est pas chiffrée, seulement encodée. Quiconque intercepte le jeton peut décoder en Base64url le segment du milieu et lire chaque revendication à l'intérieur. La signature garantit l'intégrité et l'authenticité (que le jeton a été émis par quelqu'un détenant le secret et n'a pas été modifié), mais elle ne fait rien pour cacher le contenu. C'est pourquoi vous ne devez jamais placer de mots de passe ni d'autres secrets dans la charge utile d'un JWT.
La vulnérabilité JWT la plus tristement célèbre concernait le champ de l'algorithme dans l'en-tête. Certaines bibliothèques anciennes faisaient aveuglément confiance à la valeur alg, permettant à un attaquant de la définir à 'none' et de supprimer entièrement la signature, ou de faire passer un jeton d'un algorithme asymétrique à un algorithme symétrique et de le forger en utilisant la clé publique comme secret HMAC. Les bibliothèques modernes se défendent contre cela en exigeant que l'algorithme attendu soit spécifié dès le départ, une leçon qui a façonné la manière dont les JWT sont validés aujourd'hui.