La clase ClaveAleatoria define tres atributos:
private $longitud=10;
private $numeros=true;
private $mayusculas=true;
$longitud : almacena la cantidad de caracteres que tendrá la clave.
$numeros : indica si se incluyen números dentro de la clave.
$mayusculas : indica si se incluyen letras mayúsculas en la clave.
Los métodos:
public function sinNumeros()
{
$this->numeros=false;
}
public function sinMayusculas()
{
$this->mayusculas=false;
}
fijan con falso los atributos $numeros y $mayusculas.
Para fijar la longitud de la clave tenemos el método:
public function fijarLongitud($l)
{
$this->longitud=$l;
}
Por último tenemos el método generar:
function generar()
{
//definimos un vector
$carac=array();
//si el atributo $numeros tiene almacenado true procedemos a ejecutar el for
if ($this->numeros)
//Guardamos en el vector los valores enteros comprendidos entre 48 y 57. Estos valores
//coinciden con los valores ascii de los números del 0 al 9
for($f=48;$f<=57;$f++)
$carac[]=$f;
if ($this->mayusculas)
//Añadimos al vector los valores comprendidos entre 65 y 90. Estos valores coinciden con
//los caracteres alfabéticos ('A' hasta 'Z')
for($f=65;$f<=90;$f++)
$carac[]=$f;
//caracteres alfabéticos ('a' hasta la 'z')
for($f=97;$f<=122;$f++)
$carac[]=$f;
$canti=sizeof($carac);
$clave='';
//Almacenamos caracter a caracter la clave generada. la función chr convierte a caracter el valor
//numérico.
for($f=1;$f<=$this->longitud;$f++)
$clave.=chr($carac[rand(0,$canti-1)]);
return $clave;
}