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

Вниз

Помогите оптимизировать.   Найти похожие ветки 

 
optimizer   (2007-01-21 19:01) [0]

Удалено модератором
Примечание: Использование разных ников в пределах одной ветки


 
transp   (2007-01-21 19:02) [1]

type
TBaseType = Int64; // либо Longint, но его не хватает

TPassGen = class
  ...
  FBaseLen: ShortInt;
  FCurPass: String; // есть вариант с array of Char, но скорость не меняется
  FPassBase: String;
end;

{ генерация пароля. входные параметры - Unique - некое число, которое снаружи увеличивается всегда на 1, за счет чего и генерирую пасс, PassLen - длина пароля, контролируется снаружи }
procedure TPassGen.CreatePassword(Unique: TBaseType; PassLen: Integer);
var
vMod: ShortInt;
i: Integer;
begin
i := 1;
repeat
  // FBaseLen - длина словаря
  vMod := Unique mod FBaseLen + 1;
  // FCurPass - результат, FPassBase - словарь
  FCurPass[i] := FPassBase[vMod];
  Unique := Unique div FBaseLen;
  i := i + 1;
until i > PassLen;
end;


простите за кривой пост. забыл какие тэги тут.


 
tesseract ©   (2007-01-21 19:05) [2]

> TBaseType = Int64; // либо Longint, но его не хватает


Жесть, int64 крайне медленный, у тебя словарь больше 2 ^32 ?


 
optimizer   (2007-01-21 19:10) [3]

словарь (под словарем имеется в виду не файл, а алфавит по сути) у мну не большой, тестирую на 26 (латиница, верхний регистр). проблем в том что на Longint"e скорость 2.1 как раз и дает. на Int64 немного меньше (порядка 1.6-1.7 млн пар/сек)

Longint"a не хватает не из-за словаря по большей части, а из-за инкрементации Unique.


 
Kolan ©   (2007-01-21 19:14) [4]

«Longint"a »

Нафик он нужен? Читай справку про Integer.


 
optimizer   (2007-01-21 19:15) [5]

у мну D7. Longint = Integer. RTFM.


 
Kolan ©   (2007-01-21 19:19) [6]

«[5] optimizer   (21.01.07 19:15)
у мну D7. Longint = Integer. RTFM.»

Вот и я о том же.
Написано же: «Используйте везде&#133»


 
tesseract ©   (2007-01-21 19:22) [7]

а FCurPass[i] := random(62) - тут все возможные комбинации латиницы, чем не устраивает?


 
optimizer   (2007-01-21 19:23) [8]

согласитесь, что на оптимизацию не катит?...
а longint ничем не отличается от integer"a, имхо.

плз. давайте по теме.


 
tesseract ©   (2007-01-21 19:24) [9]

> а longint ничем не отличается от integer"a, имхо.

не отличается, если не используешь торицательных значений, то DWORD тебе в руки.


 
optimizer   (2007-01-21 19:34) [10]

tesseract
ну мы же взрослые люди. по поводу знака все ясно. тут не выиграть за счет смены BaseType. надо либо менять концепцию в корне, либо какой-нить любитель asm"а подскажет правильную идею...


 
tesseract ©   (2007-01-21 19:41) [11]

> надо либо менять концепцию в корне, либо какой-нить любитель
> asm"а подскажет правильную идею...


Используй, как все нормальные люди генератор случайных чисел. В delphi он имеет равномерное распределение.


 
Servelat ©   (2007-01-21 19:59) [12]

> снаружи нее лишь Unique := Unique + 1, и ...


А какие предубеждения мешают поместить все это вовнутрь процедуры? Как я понимаю уйдет лишний параметр Unique и не будет тучи лишних call. Тогда видимо, не нужно будет делать CreatePassword методом класса, а использовать, скажем, массив строк, в который и нагенерить паролей на здоровье. Хотя зачем генерировать 2.0 млн паролей / секунду я честно сказать не понимаю, возможно стоит лучше осветить задачу, тогда и варианты появятся.
А вообще - [11], нафик велосипеды.


 
optimizer   (2007-01-21 20:03) [13]

brute-force. рандом не поможет. ровно как и массив строк.

перенести тело CreatePassword внутрь обертки - без проблем. только за счет "навесов" что дает ООП ничего не поменяется толком.

генерацию надо ускорить хотя бы до 10 млн / сек.


 
tesseract ©   (2007-01-21 20:08) [14]

> brute-force. рандом не поможет. ровно как и массив строк.


Тогда вопрос - чео этот код вообще делает? На брутфорс по словарю, он не тянет никаким макаром.


 
optimizer   (2007-01-21 20:13) [15]

brute-force это конечная задача. необходим класс генерации пасса по условиям, который будет использован не только брутом, но и рядом других утилит.

этот код генерит пасс, как это ни странно )


 
tesseract ©   (2007-01-21 20:15) [16]

> необходим класс генерации пасса по условиям, который будет
> использован не только брутом, но и рядом других утилит.


Или словарь для брутфорса или random, остальное от лукавого.


 
optimizer   (2007-01-21 20:30) [17]

:) не согласен. маска, генерация по условию (выбор charset"ов, мин/мах длина, диапазоны, дистрибуция и прочее), словарь.


 
Servelat ©   (2007-01-21 20:32) [18]

Подбирать в несколько потоков.
Не вижу большого смысла использовать ООП - зачем эти обертки если нужна скорость. Работа со строкой всяко быстрее.
Как бы я подошел. Диапазон значений Unique известен - от 0 до BaseLen ^ PassLen. Делим диапазон на n частей, каждый поток перебирает свою часть диапазона.
В потоке же генерируем строку, проверяем взломалось/не взломалось, переходим к следующей. Никакие классы не нужны. Никакого вызова процедур в цикле не нужно.


> перенести тело CreatePassword внутрь обертки - без проблем.
> только за счет "навесов" что дает ООП ничего не поменяется
> толком.


Если есть цикл, и в этом цикле вызывается процедура, то данный вариант будет выполнятся медленнее, чем если бы код процедуры присутствовал напрямую в цикле. Как минимум на одну инструкцию call медленнее. Ваши аргументы, почему "ничего не поменяется" мне не понятны.


> Тогда вопрос - чео этот код вообще делает? На брутфорс по
> словарю, он не тянет никаким макаром.


Этот код, насколько я понимаю, генерирует словарь для брутфорса полным перебором.



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

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

Наверх




Память: 0.51 MB
Время: 0.04 c
1-1166611677
DinoRay
2006-12-20 13:47
2007.02.11
TreeView Drag&Drop непонятки


6-1157130974
KOLYA-rzn
2006-09-01 21:16
2007.02.11
Попытка написать rAdmin. Вопросы по Indy


15-1169220841
Ricks
2007-01-19 18:34
2007.02.11
Уровень образования


15-1169204495
NeyroSpace
2007-01-19 14:01
2007.02.11
И все-таки нужна ли кому-нибудь правда в нашей стране?


15-1169217778
oldman
2007-01-19 17:42
2007.02.11
У Китая денег куры не клюют???