Foros del Web » Programando para Internet » PHP »

Opiniones de autogenerador de paswords

Estas en el tema de Opiniones de autogenerador de paswords en el foro de PHP en Foros del Web. Como véis este generador de passwords ?? @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" ; $desordenada = str_shuffle ( $caracteres ) ; ...
  #1 (permalink)  
Antiguo 05/02/2014, 19:13
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Opiniones de autogenerador de paswords

Como véis este generador de passwords ??

Código PHP:
Ver original
  1. <?php
  2. $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
  3. $desordenada = str_shuffle($caracteres);
  4. $password = substr($desordenada, 1, 10);
  5. echo $password;
  6. ?>
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #2 (permalink)  
Antiguo 05/02/2014, 22:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Opiniones de autogenerador de paswords

Muy sencillo y parece efectivo, habría que probarlo un poco.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 06/02/2014, 01:42
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Opiniones de autogenerador de paswords

Hola:

Considerando que en muchos sitios obligan a que lleven al menos una minúscula, una mayúscula y un número, tal vez una mejora podría ser crear esos elementos, y añadirle el resto desde tu código, y luego volver a hacer un desordenamiento...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 06/02/2014, 07:01
 
Fecha de Ingreso: diciembre-2005
Mensajes: 65
Antigüedad: 18 años, 4 meses
Puntos: 4
Respuesta: Opiniones de autogenerador de paswords

Depende donde lo vayas a utilizar.
  #5 (permalink)  
Antiguo 06/02/2014, 09:04
 
Fecha de Ingreso: diciembre-2012
Mensajes: 128
Antigüedad: 11 años, 4 meses
Puntos: 12
Respuesta: Opiniones de autogenerador de paswords

Código PHP:
    <?php
    $caracteres 
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    
$desordenada str_shuffle($caracteres);
    
$in rand(140);
    
$password substr($desordenada$in$in+10);
    echo 
$password;
    
?>
Por si acaso se vician los 10 primeros caracteres
__________________
Comparador facturas de luz
  #6 (permalink)  
Antiguo 06/02/2014, 09:34
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Opiniones de autogenerador de paswords

Hace un tiempo uso esta función para generar cadenas aleatorias de acuerdo a ciertos criterios. Espero sea útil:

Código PHP:
Ver original
  1. function RandomString($length = 40, $uc = true, $n = true, $sc = false) {
  2.     $source = 'abcdefghijklmnopqrstuvwxyz';
  3.     if ($uc == true)
  4.         $source .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  5.     if ($n == true)
  6.         $source .= '1234567890';
  7.     if ($sc == true)
  8.         $source .= '|@#~$%()=^*+[]{}-_';
  9.     if ($length > 0) {
  10.         $rstr = "";
  11.         $source = str_split($source, 1);
  12.         for ($i = 1; $i <= $length; $i++) {
  13.             mt_srand((double) microtime() * 1000000);
  14.             $num = mt_rand(1, count($source));
  15.             $rstr .= $source[$num - 1];
  16.         }
  17.     }
  18.     return $rstr;
  19. }

Para generar contraseñas podría servir y puede ser customizable en el sentido de que se puede determinar que queremos que contenga la cadena final.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 06/02/2014, 19:32
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Opiniones de autogenerador de paswords

Al final decidí dejarlo de esta forma:

Código PHP:
Ver original
  1. <?php
  2. $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  3. $caracteres .= "abcdefghijklmnopqrstuvwxyz";
  4. $caracteres .="1234567890";
  5. $caracteres .="|@#~$%()=^*+[]{}-_";
  6. $desordenada = str_shuffle($caracteres);
  7. $longitud= rand(12,14);
  8. $password = substr($desordenada, 0, $longitud);
  9. echo $password;
  10. ?>

Si se usa en un futuro 10-12 caracteres creo que están bien para una contraseña que seguramente el 99,9% de la gente acabe cambiando.

Gracias @jonni09lo por la idea de añadir también signos, no se me ocurrió en el momento. Tu código me hizo recordarlos XD
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #8 (permalink)  
Antiguo 06/02/2014, 19:54
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Opiniones de autogenerador de paswords

Rodry, en el código de jonni09lo también hay la posibilidad de caracteres repetidos y, no sé si sea bueno o malo, pero eso me gusta más.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 07/02/2014, 11:16
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Opiniones de autogenerador de paswords

La verdad esque tienes razón @Triby, mi código va perfecto pero al simplemente desordenar el string y coger de una posición a otra, obviamente no repite ningún caracter. Y si hablamos algo totalmente aleatorio, podrían llegar a repetirse.

Como ya sabéis estoy aprendiendo php y no soy ningún experto XD. no conocía las funciones mt_srand() y mt_rand(). De hecho he buscado acerca de ellas y en la documentación oficial donde suelo mirar todo dice lo siguiente:

mt_srand(): Genera el mejor número aleatorio a partir de una semilla.
mt_rand(): Genera un mejor número entero aleatorio.

¿ Alguien puede explicarmelo de una forma más sencilla ? Los ejemplos que me aparecen la verdad es que no me descifra mucho.
__________________
No te olvides de dar +1 a quien te echa un cable ;)
  #10 (permalink)  
Antiguo 07/02/2014, 11:29
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Opiniones de autogenerador de paswords

Hola @rodrypaladin, soy un poco malo explicando conceptos, pero trataré de que se entienda lo mejor posible. La semilla, en criptografía, es la manera de generar secuencias de bits, es decir que los números que se generen serán a partir de la semilla dada (como si esta fuese un estilo de clave secreta). Por esta razón los resultados variarán de acuerdo a cada semilla y cualquiera que conozca la semilla podrá regenerar la secuencia.

Lo que hago con esta línea:

Código PHP:
Ver original
  1. mt_srand((double) microtime() * 1000000);

Es generar una semilla distinta por cada iteración para reprogramar el comportamiento de mt_rand y que tenga el efecto deseado (el de poder repetir caracteres).

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #11 (permalink)  
Antiguo 07/02/2014, 12:26
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años
Puntos: 468
Respuesta: Opiniones de autogenerador de paswords

Gracias por la explicación aunque tnedría que darle más vueltas para entenderla mejor. Mil gracias.

Dentro de mis posibilidades y conocimientos he creado otro código con el cual se pueden repetir caracteres. También he variado algo mas los distintos tamaños que se peuden generar.

Seguramente el código de @Jonni09lo sea mejor, pero con este código se exactamente lo que he intentado y he conseguido hacer, mejor que usar lineas de código que todavía no entiendo bien. Aquí os lo dejo.

Código PHP:
Ver original
  1. <?php
  2. $password = array();
  3. $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  4. $caracteres .= "abcdefghijklmnopqrstuvwxyz";
  5. $caracteres .="1234567890";
  6. $caracteres .="|@#~$%()=^*+[]{}-_";
  7. $longitud = rand(10,20);
  8. for($i=0;$i<=$longitud;$i++) {
  9. $password[] = $caracteres[rand(0,strlen($caracteres))];
  10. str_shuffle($caracteres); }
  11. foreach( $password as $mpassword) {
  12. echo $mpassword; }
  13. ?>

Por cierto, no sabía que podía llamar a una determinada posición de un string con $string[] al igual que con una array.
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Etiquetas: opiniones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.