PHP:¿Cómo genero un password fácil de memorizar?

De Foros del Web

Primero habría que definir el concepto 'fácil de memorizar', yo entiendo por fácil ajikomufi y no jkimlhidt. Este sencillo escript genera un a cadena de caracteres formados por vocal consonante vocal o consonante vocal consonante, de este modo el password es leible y como consecuencia, fácil de memorizar.

Ahí va la función, la cual debería estar al inicio de todo de vuestra página junto con las demás funciones definidas.

Código PHP:

function f_genera_psw($num=8){ // By Kernellover 
    $voc = array ("a","e","i","o","u"); 
    $con = array ("b","c","d","f","g","h","j","k","l","m","n","ñ","p","q","r","s","t","w","x","y","z"); 
    $psw = "";                // cadena que contendrá el password. 
    $vc  = mt_rand(0,1);    // definde si empieza por vocal o consonante. 
    for ($n=0; $n<$num; $n++){ 
        if ($vc==1){ 
            $vc=0; 
            $psw .= $con[mt_rand(0,count($con)-1)]; 
        } 
        $psw .= $voc[mt_rand(0,count($voc)-1)]; 
        $psw .= $con[mt_rand(0,count($con)-1)]; 
    } 
    $psw = ereg_replace ("q","qu",$psw); 
    $psw = ereg_replace ("quu","que",$psw); 
    $psw = ereg_replace ("yi","ya",$psw); 
    $psw = ereg_replace ("iy","ay",$psw); 
    $psw = substr($psw,0,$num); 
    return $psw; 
}  

Para llamar a la función se puede hacer así, saliendo impresos 8 caracteres (por defecto)

Código PHP:

echo f_genera_psw(); // imprime el password (8 caracteres por defecto)

Para poner otra cantidad distinta de caracteres, sólo hay que pasarlo como parámetro así.

Código PHP:

echo f_genera_psw(6); // imprime 6 caracteres de password  

--Kernellover 17 Set 2003

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales