Comment générer du Base64 aléatoire
- Réglez Octets sur la quantité d’aléa nécessaire, de 1 à 4096. La valeur par défaut, 32 octets, représente 256 bits.
- Choisissez le Format : Base64, Base64URL (URL-safe, sans remplissage) ou hex. En Base64, vous pouvez aussi cocher Sans remplissage (=).
- Réglez Combien pour générer plusieurs valeurs d’un coup, jusqu’à 1000, une par ligne.
- Copiez la sortie, téléchargez-la en fichier texte ou appuyez sur Générer à nouveau pour obtenir une nouvelle série. Entropie et Longueur sous la sortie indiquent les bits d’aléa et le nombre de caractères.
S’il vous faut une clé dans un format précis, comme un APP_KEY Laravel ou une clé AES-256, utilisez l’un des Préréglages en haut ; le générateur de clés Base64 les détaille un par un.
Quelle sera la longueur de la sortie
L’aléa est dans les octets ; le format ne décide que de leur écriture. Base64 met 6 bits dans chaque caractère, l’hex seulement 4 : à force égale, l’hex est donc toujours plus long.
| Octets | Bits | Base64 | Base64 sans remplissage | Base64URL | Hex |
|---|---|---|---|---|---|
| 8 | 64 | 12 | 11 | 11 | 16 |
| 16 | 128 | 24 | 22 | 22 | 32 |
| 24 | 192 | 32 | 32 | 32 | 48 |
| 32 | 256 | 44 | 43 | 43 | 64 |
| 48 | 384 | 64 | 64 | 64 | 96 |
| 64 | 512 | 88 | 86 | 86 | 128 |
Les nombres d’octets divisibles par 3 (24, 48) ne produisent aucun = : les colonnes avec et sans remplissage sont alors identiques. Utilisez Base64URL quand la valeur va dans une URL, un nom de fichier ou un cookie, car + et / devraient y être échappés.
Combien d’octets utiliser
- Identifiants uniques, ID de requête, noms de fichiers envoyés : 16 octets (128 bits). Deviner une valeur ou tomber sur un doublon n’est pas un risque réaliste.
- Jetons de session, jetons d’API, liens de réinitialisation de mot de passe : 32 octets. La marge supplémentaire coûte environ 20 caractères.
- Sels pour le hachage de mots de passe : 16 octets est la recommandation habituelle ; le sel n’a pas besoin d’être secret, seulement unique.
- Données de test : n’importe quelle taille, et Combien remplit un fichier de mille valeurs en une fois.
Une chaîne aléatoire n’est forte que de son nombre d’octets. Tronquer une valeur de 44 caractères à 20 pour la faire tenir dans un champ jette plus de la moitié de son entropie : choisissez plutôt un nombre d’octets plus petit et gardez la sortie entière.
La même chose dans un terminal ou dans le code
Ces commandes produisent toutes 32 octets aléatoires en Base64 (secrets.token_urlsafe utilise l’alphabet URL-safe, sans remplissage) :
openssl rand -base64 32
head -c 32 /dev/urandom | base64
import base64, secrets
print(base64.b64encode(secrets.token_bytes(32)).decode())
print(secrets.token_urlsafe(32))
En Node.js, crypto.randomBytes(32).toString("base64url") donne la forme URL-safe. Un piège avec OpenSSL : au-delà de 48 octets, openssl rand -base64 coupe sa sortie à 64 caractères, et une valeur de 64 octets arrive donc sur deux lignes. Utilisez openssl rand 64 | openssl base64 -A pour une seule ligne, ou supprimez le saut de ligne avant de mettre la valeur dans un fichier de configuration. D’autres recettes sur les pages OpenSSL et Python.
FAQ
Ce générateur est-il assez sûr pour des mots de passe et des jetons ?
Oui. Il utilise crypto.getRandomValues, le générateur de nombres aléatoires cryptographiquement sûr du navigateur. Évitez Math.random() pour tout ce qui est secret : il n’est pas conçu pour être imprévisible.
Comment obtenir une chaîne Base64 aléatoire d'exactement N caractères ?
Choisissez N × 3 ÷ 4 octets. Avec un nombre d’octets divisible par 3, il n’y a pas de remplissage : 33 octets donnent exactement 44 caractères et 48 octets en donnent 64. Sinon, cochez Sans remplissage (=) et la longueur vaut ⌈4 × octets ÷ 3⌉.
Deux valeurs générées peuvent-elles être identiques ?
En théorie, oui, mais à partir de 16 octets (128 bits) la probabilité est négligeable : il faudrait environ 2^64 valeurs avant qu’une collision devienne probable. C’est pourquoi 16 octets est un minimum courant pour des identifiants aléatoires uniques.
Les valeurs sont-elles enregistrées quelque part ?
Non. Elles restent dans la mémoire de cet onglet jusqu’à ce que vous les copiiez ou les téléchargiez, et la page ne peut faire aucune requête réseau hormis le comptage des pages vues de Cloudflare. Rechargez la page et elles disparaissent.