Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#16: 2005-11-01 08:18:46 ЛС | профиль | цитата
-=Dima=-,
Ну все-таки 250кБайт/сек это не 10
И у меня так поменьше немного, чем 1М/сек

Вопрос скорости исполнения кода (а шифровка здесь - это уже 100% наш код, а не Билла) можно тоже решать...
Скажем прописать всю шифровку Stream-а в одном ИК. А для доступа к данным у Stream-а есть поле Memory...
Random брал только из соображений надежности шифровки, и в Дельфи он безобразно прост, типа:
RandSeed := RandSeed*$08088405 + 1[/code]
Одно целочисленное умножение. Ну и дальше использовать для шифровки только, скажем, его младший байт.

[b]-=Dima=-[/b], попробуй после такого заценить скорость
карма: 9

0
Ответов: 676
Рейтинг: 5
#17: 2005-11-01 20:28:11 ЛС | профиль | цитата
шифровка здесь - это уже 100% наш код, а не Билла

Шифровка здесь не причем это медленно работает компонент DataToFile вот такой пример работает тоже медленно
Add(MainForm,4706769,70,182)
{
Left=20
Top=105
link(onCreate,4288064:doFor,[])
}
Add(DataToFile,12855727,196,210)
{
link(onGet,6346185:doPut,[])
link(Stream,15463613:Stream,[])
}
Add(MemoryStream,15463613,196,147)
{
}
Add(DataToFile,6346185,259,210)
{
link(Stream,12049367:Stream,[])
}
Add(MemoryStream,12049367,259,147)
{
}
Add(For,4288064,126,217)
{
link(onEvent,12855727:doGet,[])
link(End,15463613:Size,[(139,198)(209,198)])
}
карма: 1

0
Ответов: 9906
Рейтинг: 351
#18: 2005-11-01 21:04:22 ЛС | профиль | цитата
"-=Dima=-" писал(а):
вот такой пример работает тоже медленно

после наполнения Stream-а и подключения Message к For.onStop получаю сообщение "6443595" через 8 секуд
=>
6443595 Байт/8 сек/1024= 786.57 КБайт/сек.

А отсюда вопрос: медленно по сравнению с чем

[size=-9]BTW: DataToFile не работает ни быстро, ни медленно. Он вызывает методы, адресованные в структуре данных Stream. И пофиг ему (DataToFile ) Билла ли это методы, или Кладова. Хотя разница значительна...
карма: 9

0
Ответов: 676
Рейтинг: 5
#19: 2005-11-01 22:05:37 ЛС | профиль | цитата
А отсюда вопрос: медленно по сравнению с чем

C тем что операция с XOR почти не замедляет операцию
карма: 1

0
Ответов: 9906
Рейтинг: 351
#20: 2005-11-01 22:16:18 ЛС | профиль | цитата
"-=Dima=-" писал(а):
C тем что операция с XOR почти не замедляет операцию

Извини непонятливого. Моих познаний в русском языке не хватает для понимания вышестоящего.

Ты можешь привести пример, в добавление к твоему предыдущему, который работает гораздо быстрее
С цифрами хотелось бы, кстати...
карма: 9

0
Ответов: 676
Рейтинг: 5
#21: 2005-11-01 22:27:24 ЛС | профиль | цитата
Вот именно что не могу быстрее, а хоелось бы
карма: 1

0
Ответов: 9906
Рейтинг: 351
#22: 2005-11-01 22:28:30 ЛС | профиль | цитата
Ну написал же блин как...
карма: 9

0
Ответов: 676
Рейтинг: 5
#23: 2005-11-01 22:45:31 ЛС | профиль | цитата
А вот если копировать по байту таким методом быстрее получается
Add(For,4288064,231,154)
{
IncludeEnd=1
link(onEvent,6983063:doCopy,[])
link(onStop,4260125:doStop,[(273,167)(273,198)(221,198)(221,223)])
link(End,15463613:Size,[])
}
Add(MemoryStream,15463613,231,84)
{
}
Add(MemoryStream,12049367,294,84)
{
}
Add(StreamCopy,6983063,294,154)
{
Count=1
link(Dest,12049367:Stream,[])
link(Source,15463613:Stream,[(307,135)(237,135)])
}
Add(Button,3864630,112,210)
{
Left=115
Top=210
link(onClick,10095384:doEvent1,[])
}
Add(Label,15120858,294,217)
{
Left=120
Top=190
}
Add(TimeCounter,4260125,231,210)
{
link(onStop,15120858:doText,[])
}
Add(Hub,10095384,161,210)
{
link(onEvent1,4260125:doStart,[])
link(onEvent2,4288064:doFor,[(212,223)(212,160)])
}
карма: 1

0
Ответов: 9906
Рейтинг: 351
#24: 2005-11-02 00:06:43 ЛС | профиль | цитата
-=Dima=-, че фигней-то заниматься...
Вот это:
Add(MainForm,4706769,105,182)
{
Left=20
Top=105
}
Add(InlineCode,12874951,273,133)
{
WorkPoints=#7:doCript|7:doReset|
EventPoints=#7:onCript|
VarPoints=#5:Count|
DataPoints=#6:Stream|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|12: Counter,|22: RandSeed:cardinal;|9: public|21: Stream:THI_Event;|22: onCript:THI_Event;|51: procedure doCript(var _Data:TData; Index:word);|51: procedure doReset(var _Data:TData; Index:word);|49: procedure Count(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|59:procedure THiAsmClass.doCript(var _Data:TData; Index:word);|15:var St:PStream;|14: i:integer;|5:begin|38: St := ReadStream(_Data,Stream,nil);|25: if St = nil then exit;|35: for i := 0 to St.Size-1 do begin|40: RandSeed := RandSeed*$08088405 + 1;|72: PChar(St.Memory)[i] := Char(ord(PChar(St.Memory)[i]) xor RandSeed);|18: inc(Counter);|7: end;|33: _hi_OnEvent(onCript,Counter);|4:end;|0:|59:procedure THiAsmClass.doReset(var _Data:TData; Index:word);|5:begin|15: Counter := 0;|31: RandSeed := ToInteger(_Data);|4:end;|0:|57:procedure THiAsmClass.Count(var _Data:TData; Index:word);|5:begin|30: _Data.Data_type := data_int;|25: _Data.idata := Counter;|4:end;|0:|4:end.|
link(onCript,4260125:doStop,[])
link(Stream,6512714:Var2,[])
}
Add(MemoryStream,15463613,273,49)
{
}
Add(Button,693644,105,133)
{
Left=110
Top=95
Width=90
Caption="Cript"
link(onClick,3614037:doEvent1,[])
}
Add(TimeCounter,4260125,329,126)
{
link(onStart,12874951:doCript,[(371,132)(371,116)(263,116)(263,139)])
link(onStop,4766106:doString,[])
}
Add(ODialog,5334323,161,49)
{
StartDir="."
link(onExecute,2687527:doOpen,[])
}
Add(FileStream,2687527,217,49)
{
link(onLoad,15463613:doCopy,[])
}
Add(SDialog,1170429,399,182)
{
link(onExecute,11893659:doValue,[])
}
Add(FileStream,6970000,546,168)
{
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,11893659:Value,[(552,156)(514,156)(514,228)(454,228)])
}
Add(DoData,15308388,497,182)
{
link(onEventData,6970000:doCopyFromStream,[])
link(Data,6512714:Var3,[(503,107)])
}
Add(GetDataEx,6512714,266,98)
{
link(Data,15463613:Stream,[])
}
Add(Memory,11893659,448,182)
{
link(onData,15308388:doData,[])
}
Add(Hub,3614037,161,133)
{
OutCount=4
link(onEvent1,5334323:doExecute,[(203,139)(203,107)(151,107)(151,55)])
link(onEvent2,12199895:doData,[])
link(onEvent3,4260125:doStart,[(316,153)(316,132)])
}
Add(Edit,7973802,217,98)
{
Left=110
Top=60
Width=90
Text="0"
DataType=2
}
Add(DoData,12199895,217,140)
{
link(onEventData,12874951:doReset,[])
link(Data,7973802:Text,[])
}
Add(Label,15120858,441,133)
{
Left=210
Top=95
Width=55
Height=20
}
Add(Button,2366673,343,182)
{
Left=110
Top=125
Width=90
Caption="Save"
link(onClick,1170429:doExecute,[])
}
Add(FormatStr,4766106,385,133)
{
Mask="%1 байт за %2 мсек"
link(onFString,15120858:doText,[])
link(Str1,15463613:Size,[(391,101)(286,101)])
}
показало скорость "65247941 байт за 438 мсек", что соответствует 142М/сек.
Теоретически, это тоже можно назвать - медленно. Если не говорить по сравнению с чем.
А ты цифр не называешь... Не на Синклере считаешь часом
карма: 9

0
Ответов: 676
Рейтинг: 5
#25: 2005-11-02 00:53:50 ЛС | профиль | цитата
Вот это скорость жаль что у меня алгоритм другой
Random не потходит там пароь можно только из цыфр вводить больно легко его потом можно взломать
У меня можно вводить любой пароль любой длинны после чего я из пароля вычисляю хеш сумму вычисляю длинну пароля и каждый байт шифрую своим алгоритмом в зависимости от положения оного в файле не один криптограф не расшифрует
------------------------------------------------------------
Но все равно спасибо за схемку попробую под себя переделать
карма: 1

0
Ответов: 9906
Рейтинг: 351
#26: 2005-11-02 07:47:14 ЛС | профиль | цитата
-=Dima=-, ты знаешь как взломать этот
Расскажи...
А то я не представляю, как (тупой перебор - это же не взлом, здоровья не хватит).

Ну или расшифруй этот:
Add(MemoryStream,11162350,119,112)
{
Stream=[ZIP2600000078DA5B2D15CFDDE0BA23ACE04F7892D18A7D1BAACE4F4E7A2BD6D498C6C2326FC1DC458A2D8632CAD9490050CB1081]
}
карма: 9

0
Ответов: 676
Рейтинг: 5
#27: 2005-11-02 20:35:33 ЛС | профиль | цитата
Galkov, у меня 1 вопросик с помощью какого метода зашифровано тот что представлен выше и какая длинна пароля если больше 4 символов даже браться не буду у меня времени столько нет но если бы действительно что то дельное было зашифрованно например данные пластиковой карточки на счету которой 1000000 $$$ я бы расшифровал
карма: 1

0
Ответов: 9906
Рейтинг: 351
#28: 2005-11-02 21:16:26 ЛС | профиль | цитата
-=Dima=-, см пост выше.
Делаешь дополнительно Randomize и записываешь себе в блокнотик RandSeed, не считая число цифирек и буковок - от лукавого это все.
Хотя в 32-х битном числе обычно 9-10 цифирек. Или 8 шестнадцатиричных.

"Бы" не считается.
У меня самого даже идей на этот счет нет, хотя мне известен алгоритм. А совершенно реальны и значительно более длинные (чем в 32 бита) генераторы псевдослучайных чисел.
Ну типа, что бы вышеуказанное количество не в баксах, а лет перебор делал.
Хотя 4Г и так много. Думается...
карма: 9

0
Ответов: 676
Рейтинг: 5
#29: 2005-11-02 22:02:27 ЛС | профиль | цитата
Я просто перебор сделать хотел
Add(InlineCode,12874951,217,203)
{
WorkPoints=#7:doCript|7:doReset|
EventPoints=#7:onCript|
VarPoints=#5:Count|
DataPoints=#6:Stream|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|12: Counter,|22: RandSeed:cardinal;|9: public|21: Stream:THI_Event;|22: onCript:THI_Event;|51: procedure doCript(var _Data:TData; Index:word);|51: procedure doReset(var _Data:TData; Index:word);|49: procedure Count(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|59:procedure THiAsmClass.doCript(var _Data:TData; Index:word);|15:var St:PStream;|14: i:integer;|5:begin|38: St := ReadStream(_Data,Stream,nil);|25: if St = nil then exit;|35: for i := 0 to St.Size-1 do begin|40: RandSeed := RandSeed*$08088405 + 1;|72: PChar(St.Memory)[i] := Char(ord(PChar(St.Memory)[i]) xor RandSeed);|18: inc(Counter);|7: end;|33: _hi_OnEvent(onCript,Counter);|4:end;|0:|59:procedure THiAsmClass.doReset(var _Data:TData; Index:word);|5:begin|15: Counter := 0;|31: RandSeed := ToInteger(_Data);|4:end;|0:|57:procedure THiAsmClass.Count(var _Data:TData; Index:word);|5:begin|30: _Data.Data_type := data_int;|25: _Data.idata := Counter;|4:end;|0:|4:end.|
link(onCript,3586696:doConvert,[])
link(Stream,6512714:Var2,[])
}
Add(MemoryStream,15463613,217,119)
{
}
Add(Button,693644,49,203)
{
Left=110
Top=95
Width=90
Caption="Cript"
link(onClick,16004166:doTimer,[(91,209)(91,250)(39,250)(39,272)])
}
Add(Timer,16004166,49,266)
{
Interval=100
Enable=1
link(onTimer,3614037:doEvent1,[(93,272)(93,209)])
}
Add(Convertor,3586696,273,203)
{
Mode=11
link(onResult,13898132:doText,[])
link(Data,6512714:Var3,[(279,177)])
}
Add(Hub,3614037,105,203)
{
InCount=2
OutCount=5
link(onEvent1,948870:doEvent1,[(147,209)(147,188)(60,188)(60,132)])
link(onEvent2,11213282:doNext,[(152,216)(152,300)])
link(onEvent3,12874951:doCript,[(177,223)(177,209)])
}
Add(Hub,948870,70,126)
{
OutCount=3
link(onEvent1,15463613:doClear,[])
link(onEvent2,7352564:doData,[(121,139)(121,90)])
link(onEvent3,11162350:doPosition,[(121,146)(121,55)])
}
Add(Edit,7973802,217,294)
{
Left=110
Top=60
Width=90
Text="0"
DataType=2
link(onChange,12874951:doReset,[(259,300)(259,265)(207,265)(207,216)])
}
Add(DoData,7352564,140,84)
{
link(onEventData,15463613:doCopy,[(194,90)(194,125)])
link(Data,11162350:Stream,[])
}
Add(GetDataEx,6512714,210,168)
{
link(Data,15463613:Stream,[])
}
Add(Counter,11213282,168,294)
{
Max=10000
link(onNext,7973802:doText,[])
}
Add(Memo,13898132,329,182)
{
Left=15
Top=130
Width=365
Height=130
}
Add(MemoryStream,11162350,140,35)
{
Stream=[ZIP2600000078DA5B2D15CFDDE0BA23ACE04F7892D18A7D1BAACE4F4E7A2BD6D498C6C2326FC1DC458A2D8632CAD9490050CB1081]
Point(doPosition)
}
карма: 1

0
Ответов: 9906
Рейтинг: 351
#30: 2005-11-02 22:12:38 ЛС | профиль | цитата
Сомнительно, что за 0.1 секунды ты смекнешь, расшифровалось ли

Но полный перебор это не идея, таки.
Ведь действительно, нет проблем запустить более качественный Random. Скажем 48-битная классика превратила бы сегодняшний год "расшифровки" в 4 тысячелетия.
Хотя и в сегодняшнем годе есть серьезные сомнения в успехе.
карма: 9

0
30
Сообщение
...
Прикрепленные файлы
(файлы не залиты)