Código fuente Ya.

Puede ejecutar la o las páginas para probar el concepto inmediatamente.

 

Concepto:Generar clave aleatoria con PHP

El concepto trata sobre:php
Autor:

Retornar

Nombre del archivo:pagina1.php

Comentarios
El objetivo es implementar una clase que permita generar una clave aleatoria de 10 caracteres por defecto.
Genera una clave constituida con números y letras mayúsculas y minúsculas.
Define una serie de métodos para fijar otra longitud de clave y si no queremos números y letras
mayúsculas.
Nombre del archivo:rutinas.php

Comentarios
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;
  }

Retornar



Código Fuente Ya - 2015