Générateur de mot de passe à caractères différents

Fermé
Tobi86 Messages postés 405 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 9 mai 2018 - 8 déc. 2013 à 15:02
 David - 8 déc. 2013 à 16:31
Bonjour,

Voilà j'ai un exercice de programmation PHP en mode CLi et une des question me donne du fils à retordre...

Voià la question principale que j'ai réussi à faire :

Fonction de génération de mot de passe
On souhaite obtenir une fonction mot_passe($n) retournant un mot de passe aléatoire d'une
longueur de $n caractères (caractère allant de a - z).


et la question qui me pose problème est cette dernière :


Modifiez le programme pour que les caractères utilisés dans les mots de passe soient :
* les lettres minuscules de a à z ;
* les lettres majuscules de A à Z ;
* les chiffres de 0 à 9 ;
* les caractères !, #, & et *


Donc au début j'ai fait ça :
<?php
/***FONCTION GENERANT LE CARACTERE ALEATOIREMENT***/
function carac_aleatoire(){
	
$rep1 = rand(97,122); // a-z
	//test permettant de savoir le chiffre généré aléatoirement de 97 à 122
	//echo $rep1;
$rep2 = rand(67,90); // A-Z
	//test permettant de savoir le chiffre généré aléatoirement de 67 à 90
	//echo $rep2;
$rep3 = rand(48,57); // 1-9
	//test permettant de savoir le chiffre généré aléatoirement de 48 à 57
	//echo $rep3;

$choixCarac = rand($rep1,$rep2);

$carac = (chr($choixCarac));
	 
return$carac;
}

echo carac_aleatoire();
?>


Mais ce code est pas bon pour que en faisant
$choixCarac = rand($rep1,$rep2);
ca me donne un aléatoire entre le 1nombre généré aléatoirement et le second...

Donc si quelqu'un parmi vous aurait la gentillesse de m'éclairer ... Merci d'avance :)
A voir également:

1 réponse

bonjour,

une autre méthode consiste à utiliser un dictionnaire des caractères souhaités puis d'en prendre de manière aléatoire un caractère

Exemple trouver sur le net
http://www.fobec.com/php5/1021/generer-mot-passe-aleatoire.html

En constante, tu déclares les tableaux
* les lettres minuscules de a à z ;
* les lettres majuscules de A à Z ;
* les chiffres de 0 à 9 ;
* les caractères !, #, & et *

puis avec rand, on sélectionne un caractère

cette méthode permet de créer plus facile des mask pour les password: 2num+4char+1exlamation
0