Autor Tema: Generar claves al azar "aleatorio"  (Leído 3760 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Generar claves al azar "aleatorio"
« : 16 de abril de 2008, 03:29:23 pm »
Debemos darle la opción a los usuarios de recordar la clave de su ingreso a nuestro sitio web, por lo que normalmente usamos la forma de enviarle una  nueva clave de acceso  generada por el sistema a su email de registro, este pequeño script genera esa clave,  lo de escribir a la BD la nueva clave así como el envio del email de notificación queda a tu criterio.

Código: [Seleccionar]
<?php
/* generación de claves al azar "aleatorio"
// GNU GENERAL PUBLIC LICENSE Ver Terminos en: 
http://www.gnu.org/copyleft/gpl.html 
Creado por: Héctor A. Mantellini 
para Php de venezuela */

$letras = &#39;0x1o2m3b4r5a6H7b8c9dZ&#39;; // letras y numeros que usaremos 
srand((double)microtime()*1000000);
$i 1;
$largo_clave 6// tamaño maximo de clave generada
$largo strlen($letras);
$clave_usuario=&#39;&#39;;
while ($i <= $largo_clave)
  { 
$lee rand1,$largo);
     
$clave_usuario .= substr($letras$lee1); 
    
$i++;                 
  }
$clave_usuario trim($clave_usuario);
$pass md5($clave_usuario); 
echo 
"Clave generada: $clave_usuario || Clave MD5: $pass";
?>


Espero les sea de utilidad.  8)
---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

Desconectado Mary De Nóbrega

  • Novato
  • *
  • Mensajes: 24
  • Puntuación: 0
  • Sexo: Femenino
  • PHP Developer
    • Ver Perfil
    • http://marydenobrega.com/
Re: Generar claves al azar "aleatorio"
« Respuesta #1 : 15 de mayo de 2008, 02:48:10 pm »
Mmmm... aqui otra opcion:

Código: [Seleccionar]
<?php
// Mary De Nobrega
//Genera codigos aleatorios

// $num variable que contiene el largo de la clave que generaremos
// por defecto es de 6 caracteres
function Genera_Codigo($num 6)
{
  
//Todos los caracteres que estan permitidos
  
$abc = array(&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;); 
  //bucle que concatena en $codigo una cadena con cada caracterer aleatorio que obtiene del array $abc
  
for($i 1$i <= $num$i++)
    
$codigo .= $abc[array_rand($abc)];
  return 
$codigo;
}

//Salida de 8 caracteres aleatoriamente.
echo Genera_Codigo(8);

//Salida de 10 caracteres aleatorios
echo Genera_Codigo(10);

//Salida de 6 caracteres aleatorios
echo Genera_Codigo();

//Salida de 6 caracteres aleatorios
echo Genera_Codigo(6);
?>


Saludos!
¡Péinate que viene gente!

Desconectado sensei

  • Novato
  • *
  • Mensajes: 4
  • Puntuación: 0
  • Sexo: Masculino
    • Ver Perfil
Re: Generar claves al azar "aleatorio"
« Respuesta #2 : 26 de septiembre de 2008, 04:08:10 pm »

Aqui esta otro que tambien funciona:


Código: [Seleccionar]
<?php

/**
 * Retorna clave generada al azar.
 *
 * @author JlCarpioE.
 * @license GNU-GPL.
 *
 * @param integer $longitud
 * @return string $password
 * 
 */
public function GenerarPassword($longitud=0){

// Verifica la longitud de la clave a generar
if( !is_numeric($longitud) || $longitud <= ){
$longitud 10;
}

// Caracteres a utilizar para generar la contraseña y los reordena aleatoriamente
$caracteres str_shuffle(&#39;abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ&#39;);

// Concatena los caracteres al azar
$password= &#39;&#39;;
for($i 0$i $longitud$i++){
$key rand(0,strlen($caracteres)-1);
$password .= substr($caracteres,$key,1);
}

return $password;
}

// Clave de 15 digitos
echo GenerarPassword(15);

// Clave de 10 digitos
echo GenerarPassword();

?>


Desconectado NextGate

  • Novato
  • *
  • Mensajes: 24
  • Puntuación: 0
  • Sexo: Masculino
  • PHP Powered
    • Ver Perfil
    • XBOX Venezuela
Re: Generar claves al azar "aleatorio"
« Respuesta #3 : 13 de enero de 2010, 02:57:52 pm »
Aqui les dejo otra pequena funcion:

Funcion:
   
Código: [Seleccionar]
/**
* Generates a random password (8 chars length)
* @author Alexander Guevara (@)
* @return string New password
*/
function SetRandomPassword(){
$pass = '';
$chars = array(
"1","2","3","4","5","6","7","8","9","0",
"a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
"k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
"u","U","v","V","w","W","x","X","y","Y","z","Z");

$count = count($chars) - 1;

srand((double)microtime()*1000000);

for($i = 0; $i < 8; $i++){
$pass .= $chars[rand(0, $count)];
}
return($pass);
}

Llamada:
Código: [Seleccionar]
echo md5(SetRandomPassword());
Saludos!

Desconectado Kilmeny

  • Novato
  • *
  • Mensajes: 1
  • Puntuación: 0
  • Sexo: Femenino
  • ¿y quién no da la vida por un sueño?
    • Ver Perfil
Re: Generar claves al azar "aleatorio"
« Respuesta #4 : 05 de mayo de 2010, 10:04:20 am »
gracias a todos, en especial a xombra...me sirvió de mucho el código.
¿una pregunta?
estuve probando la función y hasta ahora no me ha generado nada repetido (lo hice para 9 caracteres)
¿hay alguna posibilidad de que me genere las mismas claves?

Desconectado ashrey

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 471
  • Puntuación: 7
  • Sexo: Masculino
  • Wombat Team
    • Ver Perfil
    • Blog de ABerroteran
Re: Generar claves al azar "aleatorio"
« Respuesta #5 : 05 de mayo de 2010, 11:28:44 am »
gracias a todos, en especial a xombra...me sirvió de mucho el código.
¿una pregunta?
estuve probando la función y hasta ahora no me ha generado nada repetido (lo hice para 9 caracteres)
¿hay alguna posibilidad de que me genere las mismas claves?

Claro, siempre habrá esa posibilidad, pero obviamente a medida que sea mas larga la cadena (más caracteres) o haya mas símbolos, será mucho más difícil que esto suceda.

Desconectado xombra

  • Usuario Dedicado
  • ***
  • Mensajes: 175
  • Puntuación: 4
  • Sexo: Masculino
    • Ver Perfil
    • http://www.xombra.com
Re: Generar claves al azar "aleatorio"
« Respuesta #6 : 12 de agosto de 2010, 06:12:03 pm »
Otra forma :)
Código: [Seleccionar]

<?php

$clave 
substr(str_shuffle(dechex($_SERVER[&#39;REQUEST_TIME&#39;])),1, 6);
echo $clave;

?>

---------------------------------------------
Sitio web: http://www.xombra.com
Coordinador Safecreative Venezuela - http://www.safecreative.org
Coordinador Regional AWVEN - http://www.awven.com
Twitter: @xombra
Identi.ca: xombra
GNU/Linux User: #414452
-------------------------------------

abr4xas

  • Visitante
Re:Generar claves al azar "aleatorio"
« Respuesta #7 : 15 de septiembre de 2012, 07:43:35 pm »
Tambien se puede con esto.
Código: [Seleccionar]
$pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);