Générateur de sel et jeton aléatoire
ChiffreGénère des sels et jetons aléatoires cryptographiquement sûrs en hex ou Base64, via crypto.getRandomValues.
Sur cette page
Qu’est-ce qu’un sel ?#
Un sel est une donnée aléatoire que vous mélangez à un processus de hachage afin que deux entrées identiques produisent des sorties différentes. Son rôle est l’unicité, pas le secret : un sel peut figurer en texte clair à côté du hachage qu’il protège, et il vainc tout de même une attaque qui dépend de ce que chaque utilisateur ayant le même mot de passe hache vers le même condensat. Une fois que chaque mot de passe a son propre sel, un attaquant ne peut pas réutiliser une table précalculée sur toute la base — il doit recalculer entrée par entrée.
Cette page génère des octets aléatoires cryptographiquement forts avec crypto.getRandomValues et vous les livre en trois encodages : hex (deux caractères par octet, la convention pour les sels de mot de passe et les jetons d’intégrité), base64 (plus compact), et base64url (la variante sûre pour URL et noms de fichiers qui remplace +// par -/_ et supprime le remplissage =, utilisée dans les JWT et les URL signées).
La même primitive sert aussi de générateur de jetons aléatoires à tout faire : clés d’API, valeurs de nonce, identifiants opaques et jetons à usage unique sont tous « quelques octets aléatoires, encodés en texte », ce qui est précisément ce que cela produit.
Mode d’emploi#
- Réglez le nombre d’octets. Le défaut de 16 (128 bits) est la taille de sel standard ; le champ accepte jusqu’à 8192 pour quand vous avez besoin d’un jeton plus long.
- Choisissez un format : hex, base64 ou base64url.
- Cliquez sur Générer, puis sur Copier. La ligne d’état indique combien de bits d’entropie le résultat représente (octets × 8), afin que vous puissiez confirmer d’un coup d’œil que vous avez obtenu ce que vous avez demandé.
Principales fonctionnalités#
- Octets aléatoires sans biais. Tirés de
crypto.getRandomValues, le générateur cryptographiquement fort du navigateur. - Trois encodages. hex pour les sels et sommes de contrôle ; base64 pour des jetons compacts ; base64url pour tout ce qui voyage dans une URL, un nom de fichier ou du JSON.
- Indication d’entropie honnête. La ligne d’état indique le nombre de bits réel plutôt que la longueur de la chaîne encodée, qu’il est facile de mal lire.
- Jusqu’à 8192 octets. Le même outil sert un sel de 16 octets et un bloc de clé de 256 octets.
- Zéro téléversement. La génération est locale ; les octets aléatoires ne sont jamais transmis.
Exemple détaillé#
Générez 16 octets dans chacun des trois formats. Un tirage de 16 octets fait 128 bits d’entropie, et les longueurs encodées sont fixes quels que soient les octets aléatoires :
- hex — 32 caractères, par ex.
7a4c9f1e0b8d2635c4a1e9f07b2d4861 - base64 — 24 caractères avec remplissage
==, par ex.8MDwarqMD7B594C5hCB1zQ== - base64url — 22 caractères, remplissage supprimé, par ex.
8MDwarqMD7B594C5hCB1zQ
(Les valeurs ci-dessus illustrent la forme ; votre sortie réelle diffère à chaque clic parce que les octets sont fraîchement aléatoires.) Passez à 32 octets pour un sel ou une clé de 256 bits et les longueurs grandissent de façon déterministe : 64 caractères hex, 44 caractères base64, 43 caractères base64url. Cette relation fixe entre nombre d’octets et longueur encodée est un moyen rapide de vérifier que vous avez généré la taille voulue.
FAQ#
Un sel doit-il être secret ?#
Non. Le rôle d’un sel est l’unicité — il garantit que hacher deux fois le même mot de passe donne des condensats différents. Il est stocké à côté du hachage en texte clair, et cela n’affaiblit pas le schéma. Ce qui doit rester secret, c’est la clé dans HMAC ou le mot de passe dans le chiffrement, pas le sel.
Combien d’octets dois-je générer ?#
16 octets (128 bits) est le standard pour les sels de mot de passe et la plupart des jetons — cela rend les collisions accidentelles effectivement impossibles. Pour des jetons de session ou tout ce qui doit durer longtemps contre un attaquant bien financé, 32 octets (256 bits) est une marge confortable. Au-delà, c’est généralement excessif sauf si un protocole spécifique l’exige.
Quelle est la différence entre base64 et base64url ?#
Les deux encodent les mêmes octets, mais base64 utilise + et /, qui cassent les URL et les noms de fichiers, et remplit avec =. base64url les remplace par - et _ et supprime le remplissage, donc le résultat peut être déposé tel quel dans un chemin d’URL, une chaîne de requête ou un nom de fichier sans échappement. Utilisez base64url pour les JWT, les URL signées et les jetons opaques ; utilisez le base64 simple quand la sortie reste à l’intérieur de champs de données.
Puis-je utiliser cela comme clé d’API ?#
Oui. Générez 32 octets en base64url et vous obtenez un jeton de 43 caractères avec 256 bits d’entropie — plus qu’assez pour une clé d’API ou un jeton porteur longue durée. Assurez-vous simplement de le copier immédiatement, puisque la valeur est générée localement et ne peut pas être récupérée plus tard.