Tema: Algoritmos/utilidades
Pregunta: ¿Cómo generar passwords aleatórios numéricos o alfanuméricos de longitud variable?
Respuesta:
Usando expresiones regulares y time() se pueden obtener dichos passwords aleatorios de una forma muy curiosa (por lo menos para mí xD). En el código se detalla como usa la función:
Código PHP:
<?php
// Uso/sintax:
// genera_password (longitud password en caracteres o digitos, [tipo=alfanumerico|numerico])
// Si no indicas $tipo se asume como por defecto alfanumerico.
function genera_password($longitud,$tipo="alfanumerico"){
if ($tipo=="alfanumerico"){
$exp_reg="[^A-Z0-9]";
} elseif ($tipo=="numerico"){
$exp_reg="[^0-9]";
}
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
//Ejemplo:
echo "Password: (alfanumérico) ".genera_password(8)."<br>";
echo "Password: (numérico) ".genera_password(15,"numerico")."<br>";
echo "(recarga la página para ver otros passwords aleatorios)";
?>
Un saludo,
pd: La forma de usar las expresiones regulares no la implementé yo .. Tan sólo lo adapté para funcionar como "función". No recuerdo de donde la saqué.
pd2: Mejora al la generación del código aleatório, por problemas si se ejecutaba dicha función en bucles bajo una ejecución de un mismo script. Se comentó el tema en este mensaje: http://www.forosdelweb.com/f18/generar-muchos-passwords-244253/ . Gracias a Jpinedo.