Je sais que cela pourrait sembler idiot, mais je veux générer un code aléatoire de 8 caractères, uniquement des chiffres ou des lettres à l'aide de PHP. J'ai besoin de cela pour générer un mot de passe pour chaque utilisateur qui s'inscrit, merci P>
8 Réponses :
Je préférerais utiliser MD5 pour générer des mots de passe
Utilisation de l'idée MD5 () CODE>, vous pouvez prendre le
$ passe code> Vos retournent maintenant et do
Retour Substr (MD5 ($ Pass), 0, 8) ; code>
Je suppose que les L et 1 sont laissés exprès! Parce qu'ils se ressemblent?
L'avantage de cela sur MD5 ou une autre fonction de hachage est que vous pouvez laisser des caractères similaires, tels que l'exemple ci-dessus laisse sur L et 1.
J'utiliserais maintenant quelque chose comme ça: `` `$ chars =" abcdefghijkmnopqrstuvwxyz023456789 "; $ i = 0; $ jeton = ''; tandis que ($ i <= 7) {$ num = \ aléatoire_int (0, 33); $ jeton. = $ charts {$ num}; $ i ++; } `` `(utilise les fonctions PHP CSprng / Pure Randomness)
Utiliser base64_encode () code>, alimentez-le quelques
rand () code> numéros et coupez les 8 premiers caractères, qui sont définitivement des lettres ou des chiffres. Ce n'est pas une combinaison totalement aléatoire due à l'entrée étant simplement des entiers. Mais c'est assez bon pour les mots de passe utilisateur par défaut. (Sinon utilisez
rand () code> via
chr () code> avant codage.) P>
<?php $uniqid = uniqid(); $rand_start = rand(1,5); $rand_8_char = substr($uniqid,$rand_start,8); ?>
Vous voudrez peut-être saler le temps sinon un pirate informatique pourrait être en mesure de profiter. C'est un coup long, mais toujours possible.
Je pense que "long coup" est un euphémisme. ;)
Néanmoins, tous certains pirates ont, c'est le temps :-)
amende! N'a pas fait ce que vous m'avez dit de faire sur le principe, mais j'ai fait la position de départ pour la sous-chaîne aléatoire. mieux? ;)
Je viens de faire une petite recherche et il apparaît que tout ce dernier retour était pour rien, vous pouvez simplement ajouter du deuxième paramètre de Uniqid () code> et il ajoutera entropie pour des valeurs uniques: - )
Je pensais que cela ajoute des caractères spéciaux? qu'il ne voulait pas dans le mot de passe.
php a un rand code>
fonction (et Aussi un mt_rand code>
fonction que le La réclamation Docs est plus rapide.)
Alors faire quelque chose comme ceci: p>
Une autre option serait d'utiliser rand () code> une seule fois en réglant le numéro MIN & Max autorisé IE-
$ pwd = rand (10000000, 99999999); code>
@Patrick - bonne pensée! Si la vitesse est un problème, vous pouvez remplacer les appels intérieurs aléatoires avec une concaténation de chaîne seule ou un appel en caractères.
Qu'en est-il de quelque chose comme ça, pour la facilité:
Une méthode bonne ou efficace pour ce faire est la suivante: en modifiant la variable de longueur de $ Vous pouvez générer du code alphanumérique en fonction de vos besoins. P> P>
Ce travail comme charme et vous pouvez choisir le type de caractères qui seront générés comme: pour l'utiliser: p>
"hautes_case", "inférieur_case", "numéro", "spécial_character" strand>
À vos besoins, vous pouvez utiliser ce qui suit pour générer des codes aléatoires:
bin2hex(random_bytes(10))
Avez-vous Googled "PHP Random Mot de passe Generator" - Il y a beaucoup de hits ...