Combinaçoes de letras

02/02/2003

0

Eu preciso fazer um programa para descobrir uma senha e gostaria de saber se alguém conhece alguma funcao ou componente para ir testando as senhas... mais ou menos assim:

ab
abc
abcd
abcde
abcde1
abcde2
a1bcde2

Sabe gostaria de conhecer uma funcao que fosse testando as letras e numeros aleatoriamente. se alguem souber por favor!!!


Anonymous

Anonymous

Responder

Post mais votado

02/02/2003

Uma dica antes: essas droga de criptografia e senha usam árvores binárias, coloqei um artigo em www.wsnifers.hpg.com.br vá m programação e veja como mexe com arvores [logo vai tr grafos e implementados, em C].Primeiro vc tem q definir a quantidade d digitos..
Continuando a pensar, vc tem q remover a primeira letra se ela ñ existir na string a segunda vm pra primeiro, a terceira pra segundo, a qrta pra terceira, a quinta pra qrta, a sexta pra quinta e na sexta insere um novo digito..

Tá, ms cmo comparar as strings?!
descriptografa curingas:
variavel global:
WndHint: THintWindow = nil; 

As procedures
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Pos: TPoint;
  HWin: THandle;
  Paswd: array[0..63] of Char;
  R: TRect;
begin
  GetCursorPos(Pos);
  HWin := WindowFromPoint(Pos);
  if SendMessage(HWin, EM_GETPASSWORDCHAR, 0, 0) <> 0 then
    begin
      if WndHint = nil then
        begin
          WndHint := THintWindow.Create(Self);
          WndHint.Color := clInfoBk;
          SendMessage(HWin, WM_GETTEXT, 64, Longint(@Paswd));
          R := Rect(Pos.X, Pos.Y + 18, Pos.X +
            WndHint.Canvas.TextWidth(Paswd) + 8,
            Pos.Y + 18 + WndHint.Canvas.TextHeight(Paswd));
          WndHint.ActivateHint(R, Paswd);
        end;
    end
  else if WndHint <> nil then
    begin
      WndHint.ReleaseHandle;
      WndHint := nil;
    end;
end;
Agora vc dz: Troxa se eu vr a string, ñ precso comparar.. Dae eu digo.. Cara tá ferrado!! vai tr q comparar um a um..

Vou t pssar um treco que fiz.. Em PASCAL.. Que pode te dar uma luz.. Essa aqui procura por uma letra [a] dentro da strng:
Program Letra_A;
Uses crt;
var
inicio:integer;
fim:integer;
frase:string;
function letra(nome:string):integer;
begin
inicio:=0;
fim:=0;
  for inicio:=1 to length(nome) do
  begin
    if (nome[inicio]=´a´) or (nome[inicio]=´A´) then
    begin
      fim:=fim+1;
    end;
  end;
letra:=fim;
end;
function contra (nome_aux:string):string;
var
  pos:integer;
  result:string;
begin
  result:=´´;
  for pos:=length(nome_aux) downto 1 do
  begin
    result:=result+nome_aux[pos];
    contra:=result;
  end;
end;
BEGIN
  clrscr;
  textbackground (12);
  textattr:= green;
  HighVideo;
  write (´Digite a frase desejada: ´);
  readln(frase);
  textcolor (blink);
  Writeln (´O nome digitado tem  : ´,letra(frase),´ letras A ´);
  writeln (´O nome que vocˆ digitou ao contr rio : ´, contra(frase));
  writeln (´O n&mero digitado tem ´,length(frase),´ letras´);
  readkey;
  exit;
END.



Skaarj

Skaarj
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar