<?php
// *********************************************************************
// ** Fichero: generapassword.php
// ** Descripción: Generador de Contraseñas de una longitud dada.
// ** Argumentos de entrada: $longitud es el número de caracteres
// ** de la contraseña generada.
// ** Autor: Juan GarcÃa
// ** Fecha: Julio 2005
// *********************************************************************
function GeneraPassword($longitud)
{
/* Se valida la longitud proporcionada. Debe ser número y mayor de cero.
Si es menor o igual a cero le asignamos la longitud por defecto.
Si es mayor de 32 le asignamos 32.
*/
if(!is_numeric($longitud) || $longitud < = 0)
{
$longitud = 8;
}
if($longitud > 32)
{
$longitud = 32;
}
/* Asignamos el juego de caracteres al array $caracteres para generar la contraseña.
Podemos añadir más caracteres para hacer más segura la contraseña.
*/
$caracteres = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-/*%&_’;
/* Introduce la semilla del generador de números aleatorios mejorado */
mt_srand(microtime() * 1000000);
for($i = 0; $i < $longitud; $i++)
{
/* Genera un valor aleatorio mejorado con mt_rand, entre 0 y el tamaño del array
$caracteres menos 1. PosterÃormente vamos concatenando en la cadena $password
los caracteres que se van eligiendo aleatoriamente.
*/
$key = mt_rand(0,strlen($caracteres)-1);
$password = $password . $caracteres{$key};
}
return $password;
}
/* Llamamos a la función GeneraPassword y mostramos la clave generada.*/
echo GeneraPassword(10);
?>