Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизПеребор всевозможных сочетаний из символов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.044 c