abr 6, 2009

Enviado por en PHP, Programacion

Generador de contraseñas en PHP

Uno siempre se esta rompiendo la cabeza al momento de pensar una contraseña fuerte y que cumpla tus “requerimentos” de seguridad, pues con este script en PHP es muy sencillo adaptarlo a tus necesidades:

<?php function crear_semilla() {
  list($usec, $sec) = explode(' ', microtime());
  return (float) $sec + ((float) $usec * 100000);
}
/*La funcion a convocar para el resultado se llamara crear_pass
y esta se usa asi:
crear_pass(numero de caracteres maximo)
De tal manera que al insertarlo te mostraria algo asi en caso
de querer 5 como maximo
echo crear_pass(5)
Y mostraria:
kJ5PG% si se mantienen los mismos caracteres en $admitidos
*/
function crear_pass($numero_maximo){
srand(crear_semilla());
/*Admitidos: todos los caracteres que se usaran para la
contraseña, se pueden cambiar*/
$admitidos = "!#$%&=@qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
/*Resultado: vendra siendo la combinacion aleatorea de los
caracteres en "admitidos" pero que complan con la regla de que el
 numero maximo sea MAYOR a cero*/
$resultado = "";
for($invalido = 0; $invalido < $numero_maximo; $invalido ++) {
  $resultado .= $admitidos[rand(0, strlen($admitidos))];
}
return $resultado;
}?>

Lo que se hace basicamente es crear una nueva funcion, llamada en este caso crear_pass que lo que haceesque con la funcion srand que sirve para generar codigos aleatoreos en base a una lista de caracteres la cual la ponemos como la variable “admitidos”

El numero maximo de caracteres a mostrar es limitado por la variable $numero_maximo y que aparte sirve para evitar que se muestre un valor menor o igual a 0 usando la funcion strlen que vendira siendo longitud de la cadena en este caso de caracteres (numeros simbolos y letras.

Finalmente despues de comprobar que el numero es MAYOR a 0 lo devuelve bajo la variable $resultado que vendira siendo lo que se muestre en un echo o cualquier otra forma de llamar a la función

Ejemplo a continuación
Nota:
En el ejemplo se uso la funcion echo y 16 caracteres:

<?php echo crear_pass(16)  ?>

    Posts Relacionados

    Dejar una respuesta

    Debes ser Alojarse para enviar un comentario.