BrowserTools
Accueil / Encodeurs / Générateur de JWT (HS256)

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 ?
Non. Le jeton est construit et signé entièrement dans votre navigateur à l'aide de l'API Web Crypto native. Votre charge utile et votre secret de signature ne quittent jamais votre appareil, ne sont jamais journalisés et ne sont jamais transmis, ce qui est essentiel car le secret est ce qui garde un jeton HS256 sûr.
Qu'est-ce que HS256 et comment fonctionne la signature ?
HS256 est HMAC avec SHA-256, un schéma de signature symétrique. L'outil joint l'en-tête et la charge utile encodés en Base64url avec un point, calcule un HMAC-SHA256 sur cette chaîne en utilisant votre secret comme clé et encode le résultat en Base64url comme signature. Quiconque détient le même secret peut la recalculer et la vérifier.
Que dois-je mettre dans la charge utile ?
La charge utile est un objet JSON de revendications. Les revendications enregistrées comprennent sub (sujet), iss (émetteur), aud (audience), iat (émis le), exp (expiration) et nbf (pas avant), toutes utilisant des horodatages Unix pour les champs temporels. Vous pouvez aussi ajouter toutes les revendications personnalisées dont votre application a besoin, comme un rôle utilisateur ou un identifiant de locataire.
Comment ajouter une heure d'expiration ?
Incluez une revendication exp avec un horodatage Unix en secondes (pas en millisecondes) pour le moment où le jeton doit cesser d'être valide. Par exemple, un jeton valable une heure à partir de maintenant utiliserait l'heure Unix actuelle plus 3600. Les vérificateurs qui respectent exp rejetteront le jeton après ce moment.
HS256 est-il assez sûr pour la production ?
HS256 est sûr lorsque le secret est long, aléatoire et gardé confidentiel, c'est pourquoi il est recommandé d'utiliser un secret d'au moins 256 bits (32 octets). Sa limite est que le même secret signe et vérifie, donc toute partie capable de vérifier peut aussi forger des jetons. Lorsque l'émetteur et le vérificateur sont des parties différentes, un algorithme asymétrique comme RS256 convient généralement mieux.
Pourquoi ai-je obtenu une erreur de JSON invalide ?
La zone de charge utile doit contenir du JSON valide. Les erreurs courantes sont les virgules finales, les guillemets simples au lieu de doubles autour des clés et des valeurs de chaîne, ou les clés sans guillemets. Corrigez le JSON pour qu'il s'analyse proprement et le générateur le signera. Le message d'erreur indique où l'analyse a échoué.
Puis-je décoder le jeton que je viens de générer ?
Oui. La sortie est un JWT standard, vous pouvez donc le coller dans n'importe quel décodeur de JWT, y compris l'outil décodeur compagnon, pour inspecter l'en-tête et la charge utile. Pour vérifier la signature, il vous faudra le même secret que celui utilisé pour le signer ici.
Le générateur fonctionne-t-il hors ligne ?
Oui. Il ne dépend que de l'API Web Crypto intégrée aux navigateurs modernes, sans bibliothèque externe. Une fois la page chargée, il n'y a aucune requête réseau, vous pouvez donc générer des jetons sans aucune connexion à internet.

À 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.

Soutenir