Generar passwords accesibles con Php

A menudo hoy en día las aplicaciones web ofrecen la posiblidad durante el proceso de registro, de generar una clave aleatoria para los usuarios.

Sin embargo estas passwords a menudo carecen de usabilidad debido a la complicada combinación de números, letras y caracteres especiales, trataremos de explicar cómo idear una función en php que genere passwords accesibles.
Tradicionalmente la manera de generar passwords más sencilla es por medio del uso de la función rand(), concatenando letras y números de manera aleatoria.

Ejemplo de ejecución del script
Codigo Fuente del generador de passwords en PHP

Por ejemplo:

<?php
function trivial_password($len = 6)
{
$r = '';
for($i=0; $i<$len; $i++)
$r .= chr(rand(0, 25) + ord('a'));
return $r;
}
?>

Posibles resultados para esta pequeña función:
* kaaxqgsf
* rnspvfjh
* ndtfrdfj

Podriamos superarnos combinándolos con la función de encriptación md5:

<?php
function gen_md5_password($len = 6)
{
return substr(md5(rand().rand()), 0, $len);
}
?>

Generar passwords fáciles de recordar

Trataremos de crear un algoritmo que nos cree passwords que sean realmente útiles debido a que es posible memorizarla, esto lo haremos mediante la combinación de prefijos cómo (a-ante-anti-archi-auto-bi-bis-biz-biblio- etc...), sufijos () y entre medio de ambos colocaremos una cadena de caracteres sencillos de recordar.

Para generarlas tomaremos un prefijo aleatorio + una sencilla cadena (consonante + vocal) y seguido de un sufijo.

<?php
function ae_gen_password($silabas= 3, $use_prefix = false)
{

// Definimos la función a menos de que esta exista
if (!function_exists('ae_arr'))
{
// Esta función devuleve un elemento aleatorio
function ae_arr(&$arr)
{
return $arr[rand(0, sizeof($arr)-1)];
}
}

// Prefijos
$prefix = array('aero', 'anti', 'auto', 'bi', 'bio',
'cine', 'deca', 'demo', 'contra', 'eco',
'ergo', 'geo', 'hipo', 'cent', 'kilo',
'mega', 'tera', 'mini', 'nano', 'duo');

// Sufijos
$suffix = array('on', 'ion', 'ancia', 'sion', 'ia',
'dor', 'tor', 'sor', 'cion', 'acia');

// Sonidos
$vowels = array('a', 'o', 'e', 'i', 'u', 'ia', 'eo');

// Consonantes
$consonants = array('r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'j',
'k', 'l', 'z', 'c', 'v', 'b', 'n', 'm', 'qu');

$password = $use_prefix?ae_arr($prefix):'';
$password_suffix = ae_arr($suffix);

for($i=0; $i<$silabas; $i++)
{
// Selecciona una consonante al azar
$doubles = array('c', 'l', 'r');
$c = ae_arr($consonants);
if (in_array($c, $doubles)&&($i!=0)) {
if (rand(0, 4) == 1) // 20% de probabiidad
$c .= $c;
}
$password .= $c;
//

// Seleccionamos un sonido al azar
$password .= ae_arr($vowels);

if ($i == $silabas - 1) // Si el sufijo empieza con vocal
if (in_array($password_suffix[0], $vowels)) // Añadimos una consonante
$password .= ae_arr($consonants);

}

// Seleccionamos un sufijo aleatorio
$password .= $password_suffix;

return $password;
}
?>

Preparar el script para su ejecución

Unicamente nos quedaría colocarle a nuestra función una cabecera en la que se llame a l función y nos muestre los diferentes resultados, ejemplos variados:
Codigo Fuente del generador de passwords en PHP

Descarga

Codigo Fuente del generador de passwords en PHP
Ejemplo de ejecución del script

Resultado

2 silabas, sin prefijo

  • deojinion
  • zicidor
  • peohusor
  • queoceolancia
  • nobahon
  • fuhiador
  • denution
  • pialosia
  • soqueosion
  • leoquiabion

2 silabas, con prefijo

  • autoginiasion
  • antileozufacia
  • meganiacania
  • bionecejion
  • hipozeomivia
  • autociajedor
  • demopiazeosor
  • ergotequosor
  • biomaccusion
  • bicakedon

3 silabas, sin prefijo

  • peolegusion
  • zuvutumon
  • riagupasion
  • siaquiasocion
  • fojiakiacion
  • ciatekiajia
  • ciadipeocancia
  • beomialeojion
  • peoduviagia
  • biatusedor

3 silabas, prefijo

  • duopillorator
  • demoteodahudion
  • demomazoziquacia
  • megasagazoson
  • bihiruqueotor
  • centleovibeosia
  • antizadudedor
  • antirolleoreozia
  • decajafamacion
  • geoquianigeosor

Enlaces Relacionados

Codigo Fuente del generador de passwords en PHP
Ejemplo de ejecución del script
PHP y MySql una estrecha relación
5 cosas que no sabías hacer con PHP
Generar documentos OpenOffice con PHP
Nueva versión de Notepad++
Hola Mundo!
Identificar las consultas más lentas de MySql
Crea sencillas gráficas con MySql
Programar un script PHP para saber quién está en línea
Consejos para optimizar PHP
Editando en Opera páginas web en tiempo real

Comentarios

...

[URL=http://www.zapadla.cn/easyjet.php] Easyjet [/URL] Easyjet [URL=http://www.zapadla.cn/uomo.php] Uomo [/URL] Uomo [URL=http://www.zapadla.cn/alessia-marcuzzi.php] Alessia marcuzzi [/URL] Alessia marcuzzi [URL=http://www.zapadla.cn/cavalli.php] Cavalli [/URL] Cavalli [URL=http://www.zapadla.cn/sex.php] Sex [/URL] Sex [URL=http://www.zapadla.cn/pene.php] Pene [/URL] Pene [URL=http://www.zapadla.cn/hilary-duff.php] Hilary duff [/URL] Hilary duff [URL=http://www.zapadla.cn/ragazzi.php] Ragazzi [/URL] Ragazzi [URL=http://www.zapadla.cn/filme-porn-gratis.php] Filme porn gratis [/URL] Filme porn gratis [URL=http://www.zapadla.cn/manga.php] Manga [/URL] Manga [URL=http://www.zapadla.cn/mare.php] Mare [/URL] Mare [URL=http://www.zapadla.cn/belle.php] Belle [/URL] Belle [URL=http://www.zapadla.cn/lesbiche.php] Lesbiche [/URL] Lesbiche [URL=http://www.zapadla.cn/candela.php] Candela [/URL] Candela [URL=http://www.zapadla.cn/donne.php] Donne [/URL] Donne [URL=http://www.zapadla.cn/naturismo.php] Naturismo [/URL] Naturismo [URL=http://www.zapadla.cn/jesse-mccartney.php] Jesse mccartney [/URL] Jesse mccartney [URL=http://www.zapadla.cn/video-porn-gratis.php] Video porn gratis [/URL] Video porn gratis [URL=http://www.zapadla.cn/foto-erotica.php] Foto erotica [/URL] Foto erotica [URL=http://www.zapadla.cn/nuda.php] Nuda [/URL] Nuda [URL=http://www.zapadla.cn/nudo.php] Nudo [/URL] Nudo [URL=http://www.zapadla.cn/volare.php] Volare [/URL] Volare [URL=http://www.zapadla.cn/pompini.php] Pompini [/URL] Pompini [URL=http://www.zapadla.cn/nudismo.php] Nudismo [/URL] Nudismo [URL=http://www.zapadla.cn/easy-jet.php] Easy jet [/URL] Easy jet [URL=http://www.zapadla.cn/orge.php] Orge [/URL] Orge

olvide mi contraseña y ahora no puedo abrir mi msn

hola soy katherine quiero k me ayuden a poder abrir mi msn es muy importante para mi , bueno este msn no lo habro hace tiempo y es por el cual la contraseña ya lo olvide ayudenme siiii, espero su respuesta al msn tuya_para_siempre_2005@hotmail.com

me olvide mi contraseña y nose como averiguarla

bueno soi nuria de la plata y quisiera preguntar comotengo que hacer para averiguar mi contraseña.
yo hace mucho tuve un msn que era piru_lp_04@hot..
y despues lo combie y lo pase a kiieroqelosepas@hot...
la cosa es que yo en el piru_lp_04... tuve como pregunta secreta "mejor amigo de la imfancia" y en el nueva puse la pregunta "nombre de la mascota preferida"
y ahora cuando entro en hotmail para cambiar la contraseña me aparece la pregunta del msn viejo y el tema es que no me lo acuerdoy nose que hacer!!
ensema ahi tengo contactos mui importantes tengo a mis tios q estan en grecia y no los veo nunca y eso me pone mal..
quisiera saber si me pueden decir algo acerca de esto.
pueden responderme a el e-mail de una amiga que es:
vane_gelp_lp@hotmail.com
desde ya muchas gracias

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato