Fonction : générateur de mots de passes complexes ou temporaires de longueur variable

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 775 fois - Téléchargée 35 fois

Contenu du snippet

Une petit fonction qui genere des mots de passes de manière completement aléatoire et d'une longeur maximale de 32 caractères alphanumeriques

du genre : X1dde56dsKKL par exemple

Source / Exemple :


<?php  

  • Utilisation: Pour générer un mot de passe de 8 caractères, faites comme ceci:
*
  • var $password;
  • $password = generatePassword(8);
  • echo $password;
  • /
/* chaine generatePassword(int)
  • - Generer une chaine de caractères aléatoires d'une longueur spécifiée
  • - longueur maximum: 32
  • /
function generatePassword($plength) { // D abord on valide l'argument passé en parametre // Si nécéssaire on le change au cas ou il ne convient pas. if(!is_numeric($plength) || $plength <= 0) { $plength = 8; } if($plength > 32) { $plength = 32; } // Ceci est un tableau de caractres. Il n y a que les caractes standards alphanumeriques $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; // Ceci est important: Il nous faut un generateur de nombres mt_srand(microtime() * 1000000); // Maintenant on genere simplement la chaine de la longueur de l'argument for($i = 0; $i < $plength; $i++) { $key = mt_rand(0,strlen($chars)-1); $pwd = $pwd . $chars{$key}; } // Pour finir on change quelques caractères pour assurer le hasard du mot de passe for($i = 0; $i < $plength; $i++) { $key1 = mt_rand(0,strlen($pwd)-1); $key2 = mt_rand(0,strlen($pwd)-1); $tmp = $pwd{$key1}; $pwd{$key1} = $pwd{$key2}; $pwd{$key2} = $tmp; } return $pwd; //et on renvoi le mot de passe génére } ?>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
4 août 2008

Bonjour,

est ce que dans ton script on peu ajouter lors du renvoi du mot de passe une ligne sup avec le mot de passe en phonetic
genre Alpha - tango - SIX etc...
Merci pour l'info

Arnaud
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
36
remplace :

<?php
* Utilisation: Pour générer un mot de passe de 8 caractères, faites comme ceci:
*
* var $password;
* $password = generatePassword(8);
* echo $password;
*/

par :

<?php
/*
* Utilisation: Pour générer un mot de passe de 8 caractères, faites comme ceci:
*
* var $password;
* $password = generatePassword(8);
* echo $password;
*/
Messages postés
6
Date d'inscription
dimanche 28 janvier 2007
Statut
Membre
Dernière intervention
15 décembre 2007

Désolé mais je suis pas très balaise en php. Je débute.

Même en rajoutant /* j'ai pas ce qu'il faut :(

Y'a pas quelqu'un qui a ce code sur une page sur le web que je regarde ce que ca donne
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
36
il manque /* au debut de son commentaire (c'est la base du php, t'aurais du t'en appercevoir tout seul...)
Messages postés
6
Date d'inscription
dimanche 28 janvier 2007
Statut
Membre
Dernière intervention
15 décembre 2007

J'ai mis ce code comme indiqué est quand je lance la page il me marque "Parse error: syntax error, unexpected '*' in /home/www/746724243f0f345b97cf80b81f091e79/web/mdp2.php on line 8"

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
contenu du presse papier<?php
* Utilisation: Pour générer un mot de passe de 8 caractères, faites comme ceci:
*
* var $password;
* $password = generatePassword(8);
* echo $password;
*/

/* chaine generatePassword(int)
* - Generer une chaine de caractères aléatoires d'une longueur spécifiée
* - longueur maximum: 32
*/

function generatePassword($plength)
{

// D abord on valide l'argument passé en parametre
// Si nécéssaire on le change au cas ou il ne convient pas.
if(!is_numeric($plength) || $plength <= 0)
{
$plength = 8;
}
if($plength > 32)
{
$plength = 32;
}

// Ceci est un tableau de caractres. Il n y a que les caractes standards alphanumeriques

$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';

// Ceci est important: Il nous faut un generateur de nombres
mt_srand(microtime() * 1000000);

// Maintenant on genere simplement la chaine de la longueur de l'argument
for($i = 0; $i < $plength; $i++)
{
$key = mt_rand(0,strlen($chars)-1);
$pwd = $pwd . $chars{$key};
}

// Pour finir on change quelques caractères pour assurer le hasard du mot de passe
for($i = 0; $i < $plength; $i++)
{
$key1 = mt_rand(0,strlen($pwd)-1);
$key2 = mt_rand(0,strlen($pwd)-1);

$tmp = $pwd{$key1};
$pwd{$key1} = $pwd{$key2};
$pwd{$key2} = $tmp;
}

return $pwd; //et on renvoi le mot de passe génére
}

?>

</html>
Afficher les 12 commentaires

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.