Un générateur de mot de passe

Parce que les petits outils c'est bien aussi, aujourd'hui je vous propose un générateur de mot de passe qui aura la délicatesse de générer avec soin.

Quelques particularités :

  • Il s'assure d'une bonne distribution des caractères, on ne se retrouvera pas avec 3 « r » à la suite (Ô joies du hazzard)
  • On peut choisir la longueur, qui est à 8 par défaut
  • On peut choisir les caractères que l'on veut mettre dedans, même si ceux par défaut sont géniaux : il n'y a pas de 0, O, 1, l, i…, mais il y a des #=@$ (qui ne sont pas que des gros mots)
  • Le code est superbe
<?php

function wd_generatePassword($length=8$possible='$=@#23456789bcdfghjkmnpqrstvwxyz')
{
    $password = '';

    $possible_length = strlen($possible) - 1;

    #
    # add random characters to $password for $length
    #

    while ($length--)
    {
        #
        # pick a random character from the possible ones
        #

        $except = substr($password-$possible_length / 2);

        for ($n = 0 ; $n < 5 ; $n++)
        {
            $char = $possible{mt_rand(0$possible_length)};

            #
            # we don't want this character if it's already in the password
            # unless it's far enough (half of our possible length).
            # note: we have 4 tries to find a suitable one.
            #

            if (strpos($except$char) === false)
            {
                break;
            }
        }

        $password .= $char;
    }

    return $password;
}

?>

2 commentaires

1
Damien a écrit : Mardi 14 Avril 2009 à 15:24

Tres tres bon code. merci beaucoup.
c'est leger et efficace.
parfait !

2
Jonas a écrit : Mercredi 17 Juin 2009 à 12:22

Bien mieux que celui que j'ai fait ici http://jonasluthi.com/passgen

Merci bien ;)

Laisser un commentaire

 
 Souhaitez-vous être informé par E-Mail de la réponse à votre message ?