Je cherche à créer une fonction réutilisable qui générera une clé aléatoire avec des caractères ACSII imprimables de longueur choisie (entre 2 et 1000+). Je pense que les caractères ASCII imprimables seraient de 33 à 126. La clé n'a pas besoin d'être complètement unique, mais seulement unique si elle est générée exactement à la même milliseconde (par ex. uniqid()
ne fonctionnera pas).
Je pense à une combinaison de chr()
y mt_rand()
pourrait fonctionner.
Est-ce que c'est la bonne méthode, ou est-ce qu'une autre méthode est préférable ?
Editar: uniqid()
ne fonctionnera pas non plus car il n'y a pas de paramètre de longueur, c'est juste ce que PHP vous donne.
Mon idée : Voilà ce que j'ai trouvé :
function GenerateKey($length = 16) {
$key = '';
for($i = 0; $i < $length; $i ++) {
$key .= chr(mt_rand(33, 126));
}
return $key;
}
Cela pose-t-il des problèmes ?
Une autre édition : La plupart des autres questions portent sur la génération de mots de passe. Je veux une plus grande variété de caractères et je ne me soucie pas de 1
vs l
. Je veux que le nombre maximum de clés soit possible.