Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

Перебор всевозможных сочетаний из символов   Найти похожие ветки 

 
Grol ©   (2005-07-21 01:21) [0]

Уважаемые Мастера, помогите мне пожалуйста с таким вопросом: как мне сделать перебор из символов. Например в edit ввожу какие-нибудь символы, а потом из этих символов будет осуществлятся перебор. Результат выводится в memo. Перебор такой же как например у прог по взлому паролей к архивным файлам или к Word и Excel, или подбор паролей к шарам типа брутфорс. Спасибо заранее за ответ.


 
Piter ©   (2005-07-21 02:51) [1]

в чем проблема?


 
evvcom ©   (2005-07-21 08:18) [2]

А ты посчитал, сколько будет работать твой брутфорсер? Тебе жизни хватит?


 
ANB ©   (2005-07-21 08:23) [3]


> Grol ©   (21.07.05 01:21)
- цикликом. Только кнопочку сделай для выключения, а то задерешься задачу снимать.


 
evvcom ©   (2005-07-21 08:29) [4]


> - цикликом.

+ рекурсией. А еще, чтобы вопросов про жизнь не было, алгоритм шифрования должен быть реализован тоже в твоей программе, быть оптимальным и "умным". :) кул хацкер, блин.


 
Grol ©   (2005-07-21 17:10) [5]

Ребята я конечно все понимаю, что прикалываться все умеют, но я же спрашивал в серьез.


 
evvcom ©   (2005-07-21 17:19) [6]

А что несерьезного в ответе "цикликом + рекурсией"? Ну убери из "цикликом" суффикс, так серьезнее получится?


 
SergP.   (2005-07-21 18:02) [7]


> Grol ©   (21.07.05 01:21)  
> Уважаемые Мастера, помогите мне пожалуйста с таким вопросом:
> как мне сделать перебор из символов. Например в edit ввожу
> какие-нибудь символы, а потом из этих символов будет осуществлятся
> перебор. Результат выводится в memo. Перебор такой же как
> например у прог по взлому паролей к архивным файлам или
> к Word и Excel, или подбор паролей к шарам типа брутфорс.
> Спасибо заранее за ответ.


Тебе брутфорсер использующий заданый набор символов рнужен или просто прогу для генерации перестановки символов?


 
SergP ©   (2005-07-21 20:11) [8]


>  [5] Grol ©   (21.07.05 17:10)
> Ребята я конечно все понимаю, что прикалываться все умеют,
> но я же спрашивал в серьез.


Ну если так все серьезно, то вот специально для тебя написал:
(хотя пойми правильно: народ здесь не очень любит отвечать на вопросы где причиной вопроса является не отсутствии каких-либо "хитрых" знаний у вопрошающего, а его лень самому подумать)


// здесь должна быть процедура проверки конкретного пароля
procedure brutforce(n:string);
begin
 form1.memo1.lines.add(n);   // в данном случае
     // это просто демонстрация с выводом в memo
end;

// Собственно сама процедура перебора, думаю такое ты мог бы и сам написать
procedure perebor(const s,d:string;ks:integer);
var
 i:integer;
begin
for i:=1 to length(s) do
  if length(d)<ks then perebor(s,d+s[i],ks) else brutforce(d+s[i]);
end;

// Пример использования (перебор с количеством символов до 4)
procedure TForm1.Button1Click(Sender: TObject);
var
 i:integer;
const
 max=4;      //максимальное количество символов
 s="abcde";  // Набор символов используемый для перебора
begin
  for i:=0 to max-1 do perebor(s,"",i);
end;


 
Piter ©   (2005-07-21 21:22) [9]

SergP ©   (21.07.05 20:11) [8]

зря


 
ANB ©   (2005-07-21 21:53) [10]


> Тебе брутфорсер использующий заданый набор символов рнужен
> или просто прогу для генерации перестановки символов?
- а алгоритма получения всех возможных перестановок в одномерном массиве случайно не знаешь ? (Вышку я уже подзабыл, а на Кнута так и не разорился).


 
SergP ©   (2005-07-22 07:22) [11]


>  [10] ANB ©   (21.07.05 21:53)
>
> > Тебе брутфорсер использующий заданый набор символов рнужен
>
> > или просто прогу для генерации перестановки символов?
> - а алгоритма получения всех возможных перестановок в одномерном
> массиве случайно не знаешь ? (Вышку я уже подзабыл, а на
> Кнута так и не разорился).


Не знаю. Кнута не читал. У меня его тоже нет. Только в виде pdf (а это не совсем читабельно).
Но в случае с перестановкой символов в строке могу предложить  что-то типа этого. С массивом можно поступить практически так же.


procedure perestanovka(const s:string;d:string);
var
p:string;
i:integer;
begin
 if length(s)=0
   then form1.memo1.lines.add(d)
   else for i:=1 to length(s) do
     begin
     p:=s;
     delete(p,i,1);
     perestanovka(p,d+s[i]);
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 perestanovka ("12345","");
end;


 
TUser ©   (2005-07-22 07:30) [12]

Какая рекурсия? Циклы рулят.

function Next (var Text: string): boolean;
var i: integer;
begin
 result:=true; i:=length(Text);
 while result and (i > 0) then
   if Text[i] = FMaxCode then
     dec (i)
     else result:=false;
 result:=not result;
 if result then begin
   Text[i]:=succ(Text[i]);
   for i:=i+1 to length(Text) do
     Text[i]:=chr(FMinCode);
   end;
end;

procedure Enum;
var S: string;
begin
 S:={строка из символов chr(FMinCode)};
 repeat
   // do somth with S
 until not Next;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1121376385
Графиг
2005-07-15 01:26
2005.08.07
Как сделать LoadFromStream для TPicture ?


3-1119761090
funman
2005-06-26 08:44
2005.08.07
Файлы *.qr2 , чем открыть редактировать?


14-1121319792
pavel_guzhanov
2005-07-14 09:43
2005.08.07
Delphi 2005 &amp; Delphi 7


3-1120106160
Киря
2005-06-30 08:36
2005.08.07
Как выполнить поиск по DBGrid у?


1-1121894484
Grol
2005-07-21 01:21
2005.08.07
Перебор всевозможных сочетаний из символов