Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Generar contraseñas pronunciables (https://www.clubdelphi.com/foros/showthread.php?t=7027)

roman 30-01-2004 17:32:00

Generar contraseñas pronunciables
 
Hola, quiero hacer un generador de contraseñas pero dado que el sistema no requiere una alta seguridad y dado que a los usuarios se les complica horriblemente recordar y escribir contraseñas del estilo de 1AsD4xftyHh43, quisiera poder generar automáticamente contraseñas algo más sencillas, por ejemplo cuadjiplas que, sin ser trivial, es pronunciable y por tanto más fácil de recordar y escribir.

Se me ocurre crear una lista de sílabas en español tales como cuad, ji y plas y seleccionar aleatoriamente un número determinado de ellas para así formar la contraseña.

Me gustaría escuchar opiniones o si saben de algo mejor.

// Gracias

__cadetill 30-01-2004 17:40:05

Hola Román

Si la palabra no tiene porqué tener sentido, se me ocurre una cosilla, a ver que te parece:

Tenemos una array con las vocales
Tenemos otro array con las consonantes (si quieres puedes quitarle las "raras" como W, k, h, x, z, ñ,....)

Aleatoriamente cogemos una consonante + una vocal hasta completar la longitud que determines (6, 8, 10,.....)

Qué te parece?

roman 30-01-2004 17:47:30

Cita:

Empezado por cadetill
Qué te parece?

¡Ah! Creo que está mejor. Las contraseñas serán más sencillas (¿demasiado?) pero me evito tener que escribir la lista de sílabas.

// Saludos

DarkByte 15-05-2004 10:41:25

Roman, esta respuesta la tengo desde hace tiempo, pero no encontraba el hilo. Como bien sabéis, soy bastante principiante en esto de Delphi, a si que tengo que recurrir a "apaños" como este. He utilizado el truco de Trucomanía, generar palabras aleatorias.
Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
function ConsonanteAleatoria(Longitud: integer): string;
  const
    Letras = 'bcdfgjlmnñpqrstvyz';
  var
    n  : integer;
  begin
    Result:='';
    for n:=1 to Longitud do Result:=Result+Letras[1+Random(Length(Letras))];
  end;

function VocalAleatoria(Longitud: integer): string;
  const
    Letras = 'aeiou';
  var
    n  : integer;
  begin
    Result:='';
    for n:=1 to Longitud do Result:=Result+Letras[1+Random(Length(Letras))];
  end;

begin
Edit1.Text := ConsonanteAleatoria (1) + VocalAleatoria (1) + ConsonanteAleatoria (1) + 
  VocalAleatoria (1) + ConsonanteAleatoria (1) + VocalAleatoria (1)
end;

Generará contraseñas de 6 carácteres.

DarkByte 15-05-2004 10:52:37

O más fácil de lllamar mediante:
Código Delphi [-]
function PassPronunciable: string;
function ConsonanteAleatoria(Longitud: integer): string;
  const
    Letras = 'bcdfgjlmnñpqrstvyz';
  var
    n  : integer;
  begin
    Result:='';
    for n:=1 to Longitud do Result:=Result+Letras[1+Random(Length(Letras))];
  end;

function VocalAleatoria(Longitud: integer): string;
  const
    Letras = 'aeiou';
  var
    n  : integer;
  begin
    Result:='';
    for n:=1 to Longitud do Result:=Result+Letras[1+Random(Length(Letras))];
  end;

  begin
    Result := ConsonanteAleatoria (1) + VocalAleatoria (1) + ConsonanteAleatoria (1) + 
VocalAleatoria (1) + ConsonanteAleatoria (1) + VocalAleatoria (1);
  end;
Así queda más bonito escribir
Código Delphi [-]
Edit1.Text := PassPronunciable;
Por cierto... hoy he hecho mi primer Procedure... este... es una tontería pero, gracias Román :p

DarkByte 15-05-2004 11:02:04

Cita:

Empezado por cadetill
Aleatoriamente cogemos una consonante + una vocal hasta completar la longitud que determines (6, 8, 10,.....)

Grrr... a si que la idea ya la tuvo cadetill... Bruf, y yo estrujándome el coco... :p bueno, mereció la pena pues así conseguí mi primer procedure, aún lo estoy celebrando.

roman 15-05-2004 16:15:40

De cualquier forma muchas gracias DarkByte. Lo que hice en realidad fue llenar a pie una tabla como de doscientas sílabas escogiendoo tres o cuatro de ellas aleatoriamente.

// Saludos

DarkByte 15-05-2004 19:08:56

No hay de qué, aunque parece que llegé tarde...


La franja horaria es GMT +2. Ahora son las 07:48:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi