|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Мои персональные исходники
Мои наработки...
CheckSum - считает контрольную сумму строки/файла по моему собственному алгоритму. Очень простая в работе dll. Бета-версия, обо всех лагах сообщать! Считает суммы как для односимвольной строки, так и для файлов (проверял аж на 4Гб-файле, подвис на 15сек, но сработал! По-моему, даже CRC-32 не так быстро работает...) Кстати, подходит (по-моему) и для "криптования" строк, т.к. обратную процедуру составить невозможно. Пока-что всё... По мере хода наработок буду добавлять. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 06.05.2011 в 07:14. |
#2
|
|||
|
|||
Вы бы описание "своего собственного" алгоритма подсчета выложили. Было бы больше коментариев.
|
#3
|
||||
|
||||
Описание алгоритма... проще функцию привести, она сама за себя всё скажет:
Код:
function SumFromStr(str:string):string; const arr:string='0123456789abcdef'; var sum:string; i,j,p,c:integer; begin sum:='00000000000000000000000000000000'; for i:=1 to length(str) do begin for j:=0 to ord(str[i]) do begin p:=(i*j mod 32)+1; c:=pos(sum[p],arr)+1; if c>=16 then c:=1; sum[p]:=arr[c]; end; end; Result:=sum; end; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#4
|
||||
|
||||
Да ты хоть почитай что такое хэш функция!! Быстрее.. Фуф.. Может быть, хоть я тебе гарантирую что фиг она быстрее будет(смотри на той же вики табличную реализация). Да и в семейство контрольных сумм crc побольше смысла заложено (опять же - читай вики). Для этой 'хэш функции' я буквально на ходу сча составлю тесты с одинаковым результатом выполнения.
а про скорость: сильно быстрые хэши - тоже не есть хорошо, так как перебор то тоже быстрее работать будет. итак мораль. Для начинающего, не знакомого с теорией..ну..неплохо. Хотя бы есть задумка, но назвать хэшем её у меня язык не поворачивается. Так что вот так вот. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |
#5
|
||||
|
||||
совпадения - я сверял по своему генератору (занимался както перебором паролей). их КРАЙНЕ мало. Для того же мд5 их больше. Я сверял время у функций MD5, CRC32, и моей. итог (на достаточно быстром компе): MD5 - 127ms, CRC32 - 89ms, моя - 37ms. Согласен, для хешей может скорость и лишняя, но вот контрольные суммы файлов считать очень даже хорошо. Для моего проекта (Russia Online) будет очень даже нужной (при создании автоапдейтера, надо как можно быстрее считать суммы и сверять с полученным файлом). Для хешей паролей скорее будет SHAfromMD5 или ещё что-то комбинированное...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#6
|
||||
|
||||
ну вопросы скорости и прочего пока оставлю. не потому что согласился с тобой, а просто это бессмысленно. лучше я потом результаты теста покажу.
ну да ладно. вот ещё что не оч хорошо это передача входных как string. причём одной переменной весь массив входных данных. Но эт мелочи) Нет повести печальнее на свете, чем повесть о заклиневшем Resete. |
#7
|
||||
|
||||
Кстати, если у кого есть замечания/предложения по улучшению кода - прошу, буду только рад.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |