![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перебор всевозможных сочетаний из символов [D7, WinXP]
Grol © (2005-07-21 01:21:00)Уважаемые Мастера, помогите мне пожалуйста с таким вопросом: как мне сделать перебор из символов. Например в edit ввожу какие-нибудь символы, а потом из этих символов будет осуществлятся перебор. Результат выводится в memo. Перебор такой же как например у прог по взлому паролей к архивным файлам или к Word и Excel, или подбор паролей к шарам типа брутфорс. Спасибо заранее за ответ.
TUser (2005-07-22 07:30:00) [1]Какая рекурсия? Циклы рулят.
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;
SergP (2005-07-22 07:22:00) [2]
> [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;
ANB (2005-07-21 21:53:00) [3]
> Тебе брутфорсер использующий заданый набор символов рнужен
> или просто прогу для генерации перестановки символов?
- а алгоритма получения всех возможных перестановок в одномерном массиве случайно не знаешь ? (Вышку я уже подзабыл, а на Кнута так и не разорился).
Piter (2005-07-21 21:22:00) [4]SergP © (21.07.05 20:11) [8]
зря
SergP (2005-07-21 20:11:00) [5]
> [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;
SergP. (2005-07-21 18:02:00) [6]
> Grol © (21.07.05 01:21)
> Уважаемые Мастера, помогите мне пожалуйста с таким вопросом:
> как мне сделать перебор из символов. Например в edit ввожу
> какие-нибудь символы, а потом из этих символов будет осуществлятся
> перебор. Результат выводится в memo. Перебор такой же как
> например у прог по взлому паролей к архивным файлам или
> к Word и Excel, или подбор паролей к шарам типа брутфорс.
> Спасибо заранее за ответ.
Тебе брутфорсер использующий заданый набор символов рнужен или просто прогу для генерации перестановкисимволов?
evvcom (2005-07-21 17:19:00) [7]А что несерьезного в ответе "цикликом + рекурсией"? Ну убери из "цикликом" суффикс, так серьезнее получится?
Grol (2005-07-21 17:10:00) [8]Ребята я конечно все понимаю, что прикалываться все умеют, но я же спрашивал в серьез.
evvcom (2005-07-21 08:29:00) [9]
> - цикликом.
+ рекурсией. А еще, чтобы вопросов про жизнь не было, алгоритм шифрования должен быть реализован тоже в твоей программе, быть оптимальным и "умным". :) кул хацкер, блин.
ANB (2005-07-21 08:23:00) [10]
> Grol © (21.07.05 01:21)
- цикликом. Только кнопочку сделай для выключения, а то задерешься задачу снимать.
evvcom (2005-07-21 08:18:00) [11]А ты посчитал, сколько будет работать твой брутфорсер? Тебе жизни хватит?
Piter (2005-07-21 02:51:00) [12]в чем проблема?