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 llamarla cuando la necesitemos.

Espero que os sirva.
Un saludo.

Un pensamiento en “Función para generar contraseña aleatoria en PHP

Responder a Pablo Cancelar la respuesta

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.