Pack Camo

Générateur de secret JWT

Clés secrètes HS256, HS384 et HS512 aléatoires en hex ou Base64, prêtes pour votre .env. Tout s'exécute localement — rien n'est téléversé.

Entrée
HS256 · HS384 · HS512
Sortie
Hex · Base64 · Base64URL · .env

HS256 demande au moins 32 octets.

Votre secret

Clé de 256 bits · HS256 · 0 caractères

Ligne .env

JWT_SECRET=
Tester dans le décodeur JWT

Généré sur votre appareil avec crypto.getRandomValues. Rien n'est envoyé ni stocké.

Un secret digne de signer

Un JWT signé avec HMAC vaut ce que vaut son secret. Quiconque le devine peut fabriquer des jetons auxquels votre serveur fera confiance, et les secrets courts ou choisis par des humains sont exactement ce que les outils de cassage hors ligne essaient en premier. Ce générateur tire la clé du générateur de nombres aléatoires cryptographique de votre navigateur, à la longueur qu'exige l'algorithme.

Quelle longueur pour le secret

  • HS256 demande au moins 32 octets (256 bits). Plus court, il est plus faible que le hash auquel il est associé, et de nombreuses bibliothèques le refusent.
  • HS384 demande au moins 48 octets (384 bits).
  • HS512 demande au moins 64 octets (512 bits).
  • Plus long ne pose pas de problème. Une clé plus longue que la taille de bloc du hash est d'abord hachée, donc il n'y a rien à gagner au-delà de 64 octets pour HS256 ou de 128 octets pour HS512.

Utiliser le secret

  • Gardez-le hors de votre code. Placez-le dans une variable d'environnement ou un gestionnaire de secrets ; « Copier en .env » vous donne la ligne prête à coller.
  • Attention à l'encodage. Certaines bibliothèques prennent le secret sous forme de texte, d'autres attendent des octets bruts en Base64. Si vous le décodez en octets, choisissez Base64 ou Base64URL ici ; si votre bibliothèque utilise la chaîne telle quelle, hex est le choix le plus sûr.
  • Le renouveler déconnecte tout le monde. Tous les jetons signés avec l'ancien secret cessent d'être vérifiés, alors planifiez la rotation plutôt que de la faire dans la précipitation.
  • Testez avant de déployer. « Tester dans le décodeur JWT » ouvre le décodeur avec un jeton d'exemple signé avec ce secret, pour que vous voyiez à quoi ressemble une signature valide.

Questions fréquentes

Comment générer une clé secrète JWT ?
Choisissez l'algorithme utilisé par votre serveur et un secret de la bonne longueur est généré aussitôt. Choisissez l'encodage attendu par votre bibliothèque, puis copiez le secret ou la ligne .env toute prête. Cliquez sur Régénérer pour en obtenir un nouveau.
Quelle longueur pour un secret JWT en HS256 ?
Au moins 32 octets, soit 256 bits : 64 caractères hex ou 43 caractères Base64URL. Un secret plus court est plus faible que le hash SHA-256 avec lequel il est utilisé.
Est-il sûr de générer un secret dans le navigateur ?
Oui. La clé provient de crypto.getRandomValues, le même générateur cryptographique que les navigateurs utilisent pour TLS, et elle est créée sur votre appareil. Elle n'est ni envoyée à un serveur, ni journalisée, ni stockée.
Dois-je utiliser hex ou Base64 pour mon secret JWT ?
Les deux contiennent les mêmes octets aléatoires. Hex est le plus sûr si votre bibliothèque traite le secret comme du texte brut ; Base64 ou Base64URL convient si votre bibliothèque décode d'abord le secret en octets bruts, comme le demandent de nombreuses options de configuration.
Puis-je utiliser un mot de passe comme secret JWT ?
Ce n'est pas une bonne idée. Les mots de passe sont courts et prévisibles comparés à 32 octets aléatoires, et quiconque possède l'un de vos jetons peut essayer de deviner le secret hors ligne, aussi vite que son matériel le permet.