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;
}

Laisser un commentaire

3 commentaires

damien
damien

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

Jonas
Jonas

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

Merci bien ;)

yoann
yoann

Exactement ce qu'il me fallait. En plus il gere les mots de passe de facon intelligente ! merci pour ce code… :)