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

Soyez le premier à donner votre avis sur cette source.

Vue 35 928 fois - Téléchargée 1 161 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

maxioutils
Messages postés
69
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
22 juin 2007

Bah pour être franc, sur ce qu'à dit Jeca, on peut bel et bien choisir la longueur, du caractère.
Mon code prends le timestamp actuel et le hash en md5. Ensuite avec un substring(), on peut couper le md5 de façon à avoir la longueur voulu !
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
cote securite oui, maintenant... c'est pas non plus courrant un bruteforce sur un login, et ca se voit si on logue les ip de tentatives de login et les heures...
cs_Astalavista
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

On pourais aussi mettres des caractères du genre :
ALT + 159 = ?
ALT + 170 = ¬
ALT + 185 = ╣
non ?
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 "!?*+-"
coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30
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);

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.