Générateur de JWT

Générer un JWT

Construisez et signez un JWT directement dans votre navigateur. Entrez les revendications de charge utile (standard sub, aud, exp, etc. plus tout ce qui est personnalisé), choisissez l’algorithme (HS256 avec un secret partagé ou RS256/ES256 avec une clé privée) et l’outil produit le jeton en trois parties. Utile pour le développement local, les tests de charge et la reproduction des problèmes d’authentification.

Comment générer un JWT

  1. 1

    Écrivez la charge utile

    Revendications standard (`sub`, `iss`, `aud`, `exp`, `iat`, `nbf`) plus toutes celles que votre application attend.

  2. 2

    Choisissez l'algorithme

    HS256/384/512 avec un secret partagé, ou RS256/ES256 avec une clé privée au format PEM.

  3. 3

    Fournissez la clé

    Texte de secret partagé pour HMAC, ou collez la clé privée pour RSA/ECDSA. Les deux restent dans votre navigateur.

  4. 4

    Générer

    La sortie est le jeton signé. Copiez-le, utilisez-le dans des tests, décodez-le avec le décodeur JWT pour l'inspecter.

Charge utile typique pour un jeton d’utilisateur authentifié

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "user_12345",
  "iat": 1713398400,
  "nbf": 1713398400,
  "exp": 1713402000,
  "jti": "3c7c7e14-2de4-41f0-bf09-1eb5cfad4c01",
  "scope": "read:profile write:posts"
}

Choix de l’algorithme : HMAC vs asymétrique

Algorithme Type de clé Utiliser quand
HS256 secret partagé de 256 bits Monolithe qui signe et vérifie lui-même
HS384/512 Secret plus long Même que HS256, plus fort
RS256 RSA 2048+ L’émetteur signe, de nombreux services vérifient avec la clé publique
ES256 ECDSA P-256 Même que RS256 mais signatures plus petites
EdDSA Ed25519 Vérification asymétrique la plus rapide, clés les plus petites

Force de la clé

  • Les secrets HMAC doivent avoir au moins autant d’entropie que la taille de sortie de l’algorithme. HS256 nécessite 256 bits aléatoires (32 octets) ; en dessous, ils sont vulnérables à la force brute.
  • Les clés RSA doivent faire au moins 2048 bits ; 3072 ou 4096 pour des jetons à longue durée de vie.
  • ECDSA (ES256) offre une sécurité comparable à RSA 3072 avec des clés beaucoup plus petites et une signature plus rapide.

Directives d’expiration

Type de jeton Durée typique exp
Jeton d’accès 5 - 60 minutes
Jeton de rafraîchissement Jours à semaines
Réinitialisation de mot de passe 5 - 15 minutes
Vérification par e-mail 24 heures
Service à service 1-5 minutes (court)

Expiration courte + jeton de rafraîchissement est le modèle moderne. Les jetons d’accès à long terme sont difficiles à révoquer lorsqu’ils sont compromis.

Erreurs courantes

  • Réutiliser un secret de test en production. Le générateur marque les secrets HS256 et le JWT de sortie comme uniquement pour les tests si le secret semble faible. Faites confiance à cet avertissement.
  • Signer sans exp. Un JWT sans expiration est valide pour toujours. Toujours définir exp à moins d’avoir une très bonne raison et une liste de révocation.
  • Utiliser l’alg de l’en-tête sur le vérificateur. Toujours mettre en liste blanche les algorithmes du côté de la vérification ; ne suivez pas ce que le jeton demande.
  • Coller une vraie clé privée ici. Ce générateur fonctionne dans votre navigateur mais traitez les clés privées comme des secrets : utilisez des clés de test, pas de production.

Questions fréquentes

Non. La signature se fait dans votre navigateur en utilisant l’API Web Crypto. Les clés ne quittent jamais votre machine. Cela dit, pour les clés de production, générez et signez dans un environnement contrôlé, pas dans un navigateur.

HS256 est suffisant pour un monolithe où le même service signe et vérifie. RS256 ou ES256 est mieux lorsque l’émetteur est séparé du vérificateur, les clés publiques peuvent être partagées sans exposer la clé de signature.

Court. 5-15 minutes pour les jetons d’accès est typique. Utilisez un jeton de rafraîchissement avec une durée de vie plus longue pour une expérience utilisateur fluide. Ne délivrez jamais de JWT sans une revendication exp.

L’outil prend en charge l’émission de alg: none pour tester délibérément des jetons cassés / non signés, avec un avertissement bien visible. N’acceptez jamais de tels jetons dans le code de production.

Outils similaires

Outil disponible dans d’autres langues