Fonction qui génére un mot de passe aléatoire

Soyez le premier à donner votre avis sur cette source.

Vue 35 289 fois - Téléchargée 1 142 fois

Description

Cette fonction permet de générer un mot de passe aléatoire d'une taille donnée ($size)

Les caractères à utilisés sont à indiquer dans le tableau $characters.

Par défaut, le mot de passe contiendra des chiffres et des lettres (minuscules et majuscules).

L'alternance de ces caractères est obtenu de façon aléatoire.

Source / Exemple :


<?php

/***********************************/
/*     Génère un mot de passe      */
/***********************************/
// $size : longueur du mot passe voulue
function Genere_Password($size)
{
    // Initialisation des caractères utilisables
    $characters = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

    for($i=0;$i<$size;$i++)
    {
        $password .= ($i%2) ? strtoupper($characters[array_rand($characters)]) : $characters[array_rand($characters)];
    }
		
    return $password;
}

// Petit exemple

$mon_mot_de_passe = Genere_Password(10);

echo $mon_mot_de_passe;

?>

Conclusion :


Pratique pour générer des mots de passe aléatoirement de longueurs voulues, contenant pas seulement que des chiffres ou que des lettres... bref un "vrai" mot de passe pour un petit plus en terme de sécurité ;)

Je l'utilise beaucoup, j'espère qu'il pourra également vous servir ;)

PS : (pour débutants) pour récupérer un mot de passe dans une variable, il suffit donc de faire par exemple :

$mon_mot_de_passe = Genere_Password(10);

Téléchargez le zip pour l'exemple ;)

++

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

kankrelune
Messages postés
1305
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
function Genere_Password($size)
{
$password = '';
$chars = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
"a", "b", "c", "d", "e", "f", "g",
"h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z"
);

for($i=0;$i<$size;++$i)
$password .= ($i%3) ? strtoupper($chars[array_rand($chars)]) : $chars[array_rand($chars)];

return $password;
}

;o)

@ tchaOo°
cs_jeca
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
11 -
Il y a aussi ça :

$pass = md5 (uniqid (rand()));

Mais la longueur ne peut être choisie, ; dans le cas présent, c'est obligatoirement 32 caractères.
keyserbruce
Messages postés
1
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
17 avril 2007
-
Et pouquoi pas ça ?

$password = substr(crypt(time()),-8);

Et la, la longueur peut être choisie.
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
29 -
ou md5(microtime());
avec du str_replace pour virer ce qui peut porter a confusion (o et 0), bref

on est tous d'accord pour dire qu'un pass se genere en une ligne

# $p = rand(0, 2);
#
# switch($p)
# {
# case 0: $q = rand(0, 9);
# break;
# case 1: $q = rand(0, 25);
# break;
# case 2: $q = rand(0, 25);
# break;
# }


a remplacer par

if (rand(0, 2)===0) $q = rand(0, 9);
else $q = rand(0, 25);
CString
Messages postés
20
Date d'inscription
samedi 18 septembre 2004
Statut
Membre
Dernière intervention
19 avril 2007
-
Dans le tableau de mot de passe je suggère de mettre des caractères spéciaux comme "!?*+-"

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.