Jul12
2005
Generador de Contraseñas PHP

Autor: jgarcia | Archivado en: PHP

En muchas de nuestras webs nos resulta útil disponer de un script que genere de forma aleatoria contraseñas.
Una solución fácil para generar passwords con PHP es la siguiente:

<?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);
?>

Puedes ejecutar el script y probar la generación de sucesivas contraseñas actualizando la página (F5).


  • Digg
  • del.icio.us
  • Facebook
  • Google
  • LinkedIn
  • Meneame
  • MySpace
  • Technorati
  • TwitThis
Posts Relacionados

4 Comentarios on “Generador de Contraseñas PHP”

  1. #1 DeiMoS dijo 3:36 pm el Julio 12th, 2005:

    Muy bueno Juan!! script apuntado para la lista.


  2. #2 Monica dijo 10:38 pm el Abril 25th, 2006:

    Hola, tu código es bueno,
    Felicitaciones


  3. #3 Monica dijo 10:43 pm el Abril 25th, 2006:

    pero tiene un error en la linea de $password = $password . $caracteres{$key};
    si podrias ayudarme con eso please ya que recien estoy empezando a programar en php.
    Gracias


  4. #4 Rafa Marruedo dijo 8:37 pm el Agosto 11th, 2006:

    Quizás esta función tambien os puede resultar de utilidad:

    // **********************************************************************
    // ** Generador de claves faciles **
    // **********************************************************************
    function GeneradorClavesFaciles($longitud) {

    // Copyright Rafa Marruedo, 2006 | http://www.vibra.es/codigo
    // Generador de claves fáciles de recordar, con el tamaño en caracteres indicado.
    // Ejemplo de uso:
    // echo GeneradorClavesFaciles(6);
    // mostrara: ibacem

    $key=”"; // la clave que se generará

    $vocales=”aeiou”; $numero_de_vocales=strlen($vocales);
    $consonantes=”bcdfgjklmnpqrstwxyz”; $numero_de_consonantes=strlen($consonantes);

    while ($longitud>0) {
    // Con is_int averiguamos si es un ´numero entero, par o impar y lanzamos una vocal o consonante
    if (!is_int($longitud/2)) { $key=$key.substr($consonantes,rand(0,$numero_de_consonantes-1),1);} else { $key=$key.substr($vocales,rand(0,$numero_de_vocales-1),1);}
    $longitud–;
    }

    return $key;
    }



Deja un comentario.