PHP:¿Cómo generar passwords aleatórios numéricos o alfanuméricos de longitud variable?

De Foros del Web

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 dígitos, [tipo=alfanumerico|numerico]) 
// Si no indicas $tipo se asume como por defecto alfanumérico. 
 
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)"; 
 
?> 

--Cluster 12 Jun 2003

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

Herramientas personales