6
votes

générer un code aléatoire dans PHP?

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


1 commentaires

Avez-vous Googled "PHP Random Mot de passe Generator" - Il y a beaucoup de hits ...


8 Réponses :


15
votes

Je préférerais utiliser MD5 pour générer des mots de passe

Mais vous pouvez utiliser quelque chose comme ça si vous voulez une coutume: xxx


4 commentaires

Utilisation de l'idée MD5 () , vous pouvez prendre le $ passe Vos retournent maintenant et do Retour Substr (MD5 ($ Pass), 0, 8) ;


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)



1
votes

Utiliser base64_encode () , alimentez-le quelques rand () 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 () via chr () avant codage.)


0 commentaires

3
votes
<?php 

$uniqid = uniqid();

$rand_start = rand(1,5);

$rand_8_char = substr($uniqid,$rand_start,8);

?>

6 commentaires

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 () 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.



1
votes

php a un rand fonction (et Aussi un mt_rand fonction que le La réclamation Docs est plus rapide.)

Alors faire quelque chose comme ceci: xxx


2 commentaires

Une autre option serait d'utiliser rand () une seule fois en réglant le numéro MIN & Max autorisé IE- $ pwd = rand (10000000, 99999999);


@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.



10
votes

Qu'en est-il de quelque chose comme ça, pour la facilité: xxx


0 commentaires

4
votes

Une méthode bonne ou efficace pour ce faire est la suivante: xxx

en modifiant la variable de longueur de $ Vous pouvez générer du code alphanumérique en fonction de vos besoins.


0 commentaires

1
votes

Ce travail comme charme et vous pouvez choisir le type de caractères qui seront générés comme:
"hautes_case", "inférieur_case", "numéro", "spécial_character" xxx

pour l'utiliser: xxx < / p>


0 commentaires

0
votes

À vos besoins, vous pouvez utiliser ce qui suit pour générer des codes aléatoires:

bin2hex(random_bytes(10))


0 commentaires