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.
Excelente