Función para generar contraseña aleatoria en PHP

Os traigo una forma muy sencilla de generar una contraseña aleatoria con la longitud y caracteres que deseemos.

Se trata de recorrer las posiciones aleatoriamente de la cadena que usemos, esta contendrá los caracteres permitidos en la contraseña y repetiremos esa acción tantas veces como deseemos que sea la contraseña de larga.

Os pongo el código fuente a continuación explicado con comentarios:

function generaPass(){
    //Se define una cadena de caractares.
    //Os recomiendo desordenar las minúsculas, mayúsculas y números para mejorar la probabilidad.
    $cadena = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890@#!€%&()";
    //Obtenemos la longitud de la cadena de caracteres
    $longitudCadena=strlen($cadena);
 
    //Definimos la variable que va a contener la contraseña
    $pass = "";
    //Se define la longitud de la contraseña, puedes poner la longitud que necesites
    //Se debe tener en cuenta que cuanto más larga sea más segura será.
    $longitudPass=10;
 
    //Creamos la contraseña recorriendo la cadena tantas veces como hayamos indicado
    for($i=1 ; $i<=$longitudPass ; $i++){
        //Definimos numero aleatorio entre 0 y la longitud de la cadena de caracteres-1
        $pos=rand(0,$longitudCadena-1);
 
        //Vamos formando la contraseña con cada carácter aleatorio.
        $pass .= substr($cadena,$pos,1);
    }
    return $pass;
}

Una vez creada la función solo debemos llamar cuando la necesitemos.

Espero que os sirva.
Un saludo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Notificación de comentarios

Si se suscribirse cuando se publique un nuevo comentario se le notificará por correo electrónico, de esta forma podrá estar informado de todos los comentarios y podrá ver si han respondido al suyo.

También puedes suscribirte sin comentar.