Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Генератор списков паролей [D2005, XP]


Ruffian ©   (2007-08-01 20:26:00) 

Здравствуйте уважаемые программисты..
Проблема собственно вот в чём:
Пишу программу для генерации списков паролей, алгаритм такой
с каждым символом подставляется каждый итд..
тоесть для трёх-символьной генерации использую следушее:

begin
xyz:=TstringList.create; //xyz типа TStrings
for a:=1 to 161 do        //Цифра 161 взята из максимального количества                        //символов в русской и английской раскладках
begin
for b:=1 to 161 do
begin
for c:=1 to 161 do
xyz.Add(mas[a]+mas[b]+mas[c]);//собственно в mas[1]-mas[161]хранятся //все символы
end;
end;

If  OpenTextFileDialog1.Execute then                   //
xyz.SaveToFile(OpenTextFileDialog1.FileName);     //сохранение
xyz.free;                                                        //
end;


С 3-значной длиной всё в порядке, генерация происходит за несколько секунд и успешно сейвится, а вот с 4-значной наступает проблема - поскольку объём строк очень большой, происходит переполнение стека..
Есть идея сделать поэтапное сохранение после каждого прохода (тоесть на каждой 1/161)..
Прошу высказат ьваш взгляд на вышеизложенное.
(Прошу прощенье если где-то напутал)
Заранее спасибо!


DrPass   (2007-08-01 22:27:00) [1]


> (вернее как, с помощью чего лучше общаться с файлами?)

assignfile, rewrite, writeln, closefile

> Поэтому и нужен генератор 8), будет генерить по частям..

А смысл? Можно подумать, существует компутер, способный обработать все варианты паролей из 8 символов, хоть по частям, хоть сразу.


Ruffian   (2007-08-01 21:14:00) [2]


> сделай просто добавление строки в файл на каждой итерации
> цикла. Будет намного быстрее и при этом с ничтожным потреблением
> памяти

Сори, не понял, куда добавлять сроку? (вернее как, с помощью чего лучше общаться с файлами?)
> А у тебя диска то хватит - это 3 611 577 970 071 152 648
> байт для паролей из 8 символов

Поэтому и нужен генератор 8), будет генерить по частям..


Anatoly Podgoretsky   (2007-08-01 21:09:00) [3]

А у тебя диска то хватит - это 3 611 577 970 071 152 648 байт для паролей из 8 символов


DrPass   (2007-08-01 20:39:00) [4]

Вместо этого
> xyz:=TstringList.create;

> xyz.Add(mas[a]+mas[b]+mas[c]);

> xyz.SaveToFile(OpenTextFileDialog1.FileName);     //сохранение
> xyz.free;

сделай просто добавление строки в файл на каждой итерации цикла. Будет намного быстрее и при этом с ничтожным потреблением памяти


Наверх

Титульная страница Поиск, карта сайта Написать письмо