Generation d'un mot de passe avec choix de type de caractère

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 751 fois - Téléchargée 28 fois

Contenu du snippet

Code de génération de mot de passe Utilisateur avec choix de type de caratère (majuscule, minuscule, chiffre)

Explication du code:
Il retourne le mot de passe
et il faut demander la fonction:
Generation_Passe($Taille,$Chiffre,$Lettre,$Majuscule)

Suivant votrechoix
Generation_Passe(10,false,true,true)

Source / Exemple :


/****************************************************		Génère un mot de passe aléatoire
		Retourne: 	Le Mot de passe
		Codée par: 	VACHER Grégory
		Date: 		06 Mars 2004
		Version: 	1.0
	\****************************************************/
	function Generation_Passe($Taille,$Chiffre,$Lettre,$Majuscule)
	{
 		if($Taille>0)
		{
			srand((float) microtime()*1000000);		// Initialise la fonction Aléatoire
			if($Chiffre)
			{
				if($Lettre)
				{
					$Alphabet=array(	1=>"a",2=>"b",3=>"c",4=>"d",5=>"e",6=>"f",7=>"g",8=>"h",9=>"i",10=>"j",11=>"k",12=>"l",13=>"m",14=>"n",
										15=>"o",16=>"p",17=>"q",18=>"r",19=>"s",20=>"t",21=>"u",22=>"v",23=>"w",24=>"x",25=>"y",26=>"z");
					if($Majuscule)	// Mot de Passe Avec CHIFFRE & LETTRE Minuscule & Majuscule
					{
						for($Compteur=0;$Compteur<$Taille;$Compteur++)
						{
							$A_Lettre=rand(1,26);	// Retourne un caractere a-z
							$A_Chiffre=rand(0,9);	// Retourne un nombre Aléatoire entre 0 et 9
							if($Compteur==0)
							{	// Premier caractere
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit chiffre soit lettre)
									$Mot_De_Passe=$A_Chiffre;
								else
								{	// Lettre Choisis
									if(rand(0,50)%2)	//	Choisis Aéatoirement (soit maj soit min)
									{	$Lettre=strtoupper($Alphabet[$A_Lettre]);$Mot_De_Passe=$Lettre;}
									else
										$Mot_De_Passe=$Alphabet[$A_Lettre];	
								}
							}
							else
							{
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit chiffre soit lettre)
									$Mot_De_Passe=$Mot_De_Passe.$A_Chiffre;
								else
								{	// Lettre Choisis
									if(rand(0,50)%2)	//	Choisis Aéatoirement (soit maj soit min)
									{	$Lettre=strtoupper($Alphabet[$A_Lettre]);$Mot_De_Passe=$Mot_De_Passe.$Lettre;}
									else
										$Mot_De_Passe=$Mot_De_Passe.$Alphabet[$A_Lettre];	
								}
							}
						}
						return $Mot_De_Passe;
					}
					else	// Mot de Passe Avec CHIFFRE & LETTRE Minuscule
					{
						for($Compteur=0;$Compteur<$Taille;$Compteur++)
						{
							$A_Lettre=rand(1,26);	// Retourne un caractere a-z
							$A_Chiffre=rand(0,9);	// Retourne un nombre Aléatoire entre 0 et 9
							if($Compteur==0)
							{	// Premier caractere
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit chiffre soit lettre)
									$Mot_De_Passe=$A_Chiffre;
								else
									$Mot_De_Passe=$Alphabet[$A_Lettre];
							}
							else
							{
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit chiffre soit lettre)
									$Mot_De_Passe=$Mot_De_Passe.$A_Chiffre;
								else
									$Mot_De_Passe=$Mot_De_Passe.$Alphabet[$A_Lettre];
							}
						}
						return $Mot_De_Passe;
					}
				}
				else	// Mot de Passe Avec CHIFFRE
				{
					for($Compteur=0;$Compteur<$Taille;$Compteur++)
					{
						$A_Chiffre=rand(0,9);	// Retourne un nombre Aléatoire entre 0 et 9
						if($Compteur==0)
							$Mot_De_Passe=$A_Chiffre;	// Premier caractere
						else
							$Mot_De_Passe=$Mot_De_Passe.$A_Chiffre;
					}
					return $Mot_De_Passe;
				}
			}
			else
			{
				if($Lettre)
				{
					$Alphabet=array(	1=>"a",2=>"b",3=>"c",4=>"d",5=>"e",6=>"f",7=>"g",8=>"h",9=>"i",10=>"j",11=>"k",12=>"l",13=>"m",14=>"n",
										15=>"o",16=>"p",17=>"q",18=>"r",19=>"s",20=>"t",21=>"u",22=>"v",23=>"w",24=>"x",25=>"y",26=>"z");
					if($Majuscule)	// Mot de Passe Avec LETTRE Minuscule & Majuscule
					{
						for($Compteur=0;$Compteur<$Taille;$Compteur++)
						{
							$A_Lettre=rand(1,26);	// Retourne un caractere a-z
							if($Compteur==0)
							{	// Premier caractere
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit maj soit min)
								{	$Lettre=strtoupper($Alphabet[$A_Lettre]);$Mot_De_Passe=$Lettre;}
								else
									$Mot_De_Passe=$Alphabet[$A_Lettre];
							}
							else
							{
								if(rand(0,50)%2)	//	Choisis Aéatoirement (soit maj soit min)
								{	$Lettre=strtoupper($Alphabet[$A_Lettre]);$Mot_De_Passe=$Mot_De_Passe.$Lettre;}
								else
									$Mot_De_Passe=$Mot_De_Passe.$Alphabet[$A_Lettre];
							}
						}
						return $Mot_De_Passe;
					}
					else	// Mot de Passe Avec LETTRE Minuscule
					{
						for($Compteur=0;$Compteur<$Taille;$Compteur++)
						{
							$A_Lettre=rand(1,26);	// Retourne un caractere a-z
							if($Compteur==0)
								$Mot_De_Passe=$Alphabet[$A_Lettre];	// Premier caractere
							else
								$Mot_De_Passe=$Mot_De_Passe.$Alphabet[$A_Lettre];
						}
						return $Mot_De_Passe;
					}
				}
				else	// Mot de Passe Erreur
				{
					return false;
				}
			}
		}
		else
			return false;

	}

A voir également

Ajouter un commentaire Commentaires
Messages postés
118
Date d'inscription
vendredi 18 avril 2003
Statut
Membre
Dernière intervention
28 décembre 2006

bonjour, quelqu'un pourrai me dire comment faire pour verfifier sur dans une vriable il n'y a QUE ces caractere ?

par exemple :
if($pseudo != ... || ..){

fonction ...

}

pour que le pseudo ne contienne pas des carctere du genre = ou < > ? ... etc ...

Merci !
Messages postés
3
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
14 mai 2004

Hmm... tu peux aussi faire ça, c'est un peu moins long et donne, à priori le meme résultat :

function GenerateId( $lengh = '10', $minus, $majus, $numer ) {

$min = ( $minus ) ? 'abcdefghijklnmopqrstuvwxyz' : '' ;
$maj = ( $majus ) ? 'ABCDEFGHIJKLNMOPQRSTUVWXYZ' : '' ;
$num = ( $numer ) ? '0123456789' : '' ;
$chars = $min . $maj . $num ;
$id = '';
mt_srand ((double) microtime() * 1000000);
for ($i = 0; $i < $lengh; $i++)
{
$id .= $chars{mt_rand (0,strlen($chars))};
}
return $id;

}

echo GenerateId( '20', true, true, false ) ;

Voila...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.