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

Hola,
Se me ha ocurrido hacer el siguiente procedimiento para generar contraseñas prácticamente imposibles de crackear (?) a partir de palabras o frases comunes:

Código Delphi [-]
procedure TForm1.Button6Click(Sender: TObject);
Var c, hs, sumhs: String;
      x, ch: Integer;
 
begin
c:= Edit1.Text; //cadena de caracteres inicial
//RxSpinEdit3.AsInteger es el número de transformaciones de la contraseña
For x:= 1 To RxSpinEdit3.AsInteger Do
  Begin
  hs:= MD5DigestToStr(MD5String(c));
 
//en sumsh se van almacenando y desplazando los sucesivos hash generados:
//con un tamaño máximo para no provocar un desbarajuste:
  sumhs:= Copy(hs+sumhs, 1, 666);
 
//se generan los correspondientes carcteres ASCII de cada hash generado...:
//(un hash es un valor hexadecimal)
  c:='';
  For ch:=1 To Length(sumhs) Div 2 Do c:= c+Chr(StrToInt('$'+Copy(sumhs, (2*ch)-1, 2)));
//...de los que se obtendrá a su vez un nuevo hash en cada ciclo del bucle
  End;
 
c:= Base64EncodeStr(c); x:= Length(c);//resultado final en Base64
While c[x]= '=' Do Dec(x); //quita los posibles '=' del final
Edit2.Text:= Copy(c, 1, x);
end;

Como se ve, la idea es ir deformando una palabra o frase sencilla una y otra vez mediante la función MD5 (o cualquier otra). En principio, cualquier programa crackeador se verá obligado a perder el tiempo siguiendo este procedimiento para cada una de las ingentes cantidades de combinaciones de caracteres, o bien hacerlo por fuerza bruta, y como este algoritmo (?) genera contraseñas de hasta 444 caracteres como si nada...

Última edición por dec fecha: 01-05-2007 a las 22:59:48.
Responder Con Cita