Ver Mensaje Individual
  #1  
Antiguo 03-05-2007
Wellnic Wellnic is offline
Miembro
 
Registrado: mar 2007
Posts: 68
Reputación: 18
Wellnic Va por buen camino
Generador de contraseñas

Todos sabemos lo difícil que es crear una buena contraseña, esta ha de ser lo más enrevesada posible para los demás... pero también lo será para nosotros, desgraciadamente.

La siguiente función trata de solucionar el problema. Acepta dos parámetros: una palabra o frase fácil de recordar (o no) y el número de veces que dicha función transformará la frase hasta crear una cadena irreconocible, casi pseudoaleatoria:

Código Delphi [-]
Function transcon(plbi: String; ntrns: Integer): String;
Var hs, sumhs: String;
      x, ch: Integer;

begin
For x:= 1 To ntrns Do
  Begin
  hs:= MD5DigestToStr(MD5String(plbi));
  //(www.killa.com.ar/bk)
  sumhs:= Copy(hs+sumhs, 1, 666);
  plbi:='';
  For ch:=1 To Length(sumhs) Div 2 Do plbi:= plbi+Chr(StrToInt('$'+Copy(sumhs, (2*ch)-1, 2)));
  End;
plbi:= Base64EncodeStr(plbi);
//www.cityinthesky.co.uk/files/dcpcrypt2.zip
x:= Length(plbi);
While plbi[x]= '=' Do Dec(x);
transcon:= plbi;
End;

Por ejemplo, si ponemos transcon('Angelina Joli', 729) el resultado será:

MjV1Vqq1oj36D64G4d6I/WgxKkZxbk8J+Wai4hV+SmxF7FUDn4EO0n0VyI9HymHZTcbAvz4XZKpWFF5VBxa0gJ3eJTc1t/JxclMjM9Y+bDxzq9MiJin2grZgx... (así hasta 444 caracteres; ni su madre la reconocería).

No tenemos porqué usar el resultado entero, podemos extraer o copiar cualquier trozo como contraseña (otro posible parámetro).

Esta es una función de lo más versátil y personalizable, cambiando simplemente el número de la bestia por otro cualquiera, el resultado será totalmente distinto...

O podemos cambiar el plbi:= plbi+Chr(StrToInt('$'+Copy(sumhs, (2*ch)-1, 2))); por:

plbi:= plbi+Chr(StrToInt('$'+Copy(sumhs, (2*ch), 1))
+Chr(StrToInt('$'+Copy(sumhs, (2*ch)-1, 1)));


ó:

plbi:= plbi+Chr(StrToInt('$'+Copy(sumhs, ((4*ch+3) Mod 34), 2));

o cualquer otra fórmula que se nos ocurra para despistar a los amigos de las cuentas ajenas.
Responder Con Cita