Posted By

ppalli on 07/15/06


Tagged

password contrasea


Versions (?)

Who likes this?

4 people have marked this snippet as a favorite

luman
mate
ppalli
juanaco1


Generar contraseñas 1


 / Published in: PHP
 

  1. <?php
  2.  
  3. // *********************************************************************
  4. // ** Fichero: generapassword.php
  5. // ** Descripción: Generador de Contraseñas de una longitud dada.
  6. // ** Argumentos de entrada: $longitud es el número de caracteres
  7. // ** de la contraseña generada.
  8. // ** Autor: Juan García
  9. // ** Fecha: Julio 2005
  10. // *********************************************************************
  11. function GeneraPassword($longitud)
  12. {
  13. /* Se valida la longitud proporcionada. Debe ser número y mayor de cero.
  14.   Si es menor o igual a cero le asignamos la longitud por defecto.
  15.   Si es mayor de 32 le asignamos 32.
  16.   */
  17. if(!is_numeric($longitud) || $longitud < = 0)
  18. {
  19. $longitud = 8;
  20. }
  21. if($longitud > 32)
  22. {
  23. $longitud = 32;
  24. }
  25.  
  26. /* Asignamos el juego de caracteres al array $caracteres para generar la contraseña.
  27.   Podemos añadir más caracteres para hacer más segura la contraseña.
  28.   */
  29. $caracteres = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-/*%&_’;
  30.  
  31.   /* Introduce la semilla del generador de números aleatorios mejorado */
  32. mt_srand(microtime() * 1000000);
  33.  
  34. for($i = 0; $i < $longitud; $i++)
  35. {
  36. /* Genera un valor aleatorio mejorado con mt_rand, entre 0 y el tamaño del array
  37.   $caracteres menos 1. Posteríormente vamos concatenando en la cadena $password
  38.   los caracteres que se van eligiendo aleatoriamente.
  39.   */
  40. $key = mt_rand(0,strlen($caracteres)-1);
  41. $password = $password . $caracteres{$key};
  42. }
  43.  
  44. return $password;
  45. }
  46. /* Llamamos a la función GeneraPassword y mostramos la clave generada.*/
  47. echo GeneraPassword(10);
  48. ?>

Report this snippet  

You need to login to post a comment.