Показать сообщение отдельно
  #31  
Старый 11.03.2012, 14:20
UchusNaDelhi7 UchusNaDelhi7 вне форума
Прохожий
 
Регистрация: 07.03.2012
Сообщения: 15
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Вот не нравятся мне такие решения. А если надо 3 или 12 символов проверять? Весь код переписывать на 12 циклов? Может так интереснее будет?

Код:
Const
  CharSet: String = 'abcdefghijklmnopqrstuvxwz';
procedure PassGen(Pass: String; Depth: Integer);
Var
  i: Integer;
begin
 for i := 1 to Length(CharSet)
 do begin
    Pass[Depth] := CharSet[i];
    if Depth < Length(Pass)
    then PassGen(Pass, Depth + 1)
    else Memo1.Lines.Add(Pass);
    end;
end;

begin
 PassGen('123456', 1);
end;

Спасибо за код , если можно поясните принцип работы . А на счет ждать : для 9-значного " пароля " время перебора составит примерно 32 года , для 12-значного около 1 505 615 лет ( это если 36 символов : Англ.буквы одного регистра и цифры ) .
Ответить с цитированием