Вычисление простого хеш-кода для блока данных |
Previous Top Next |
Code: |
{ **** UBPFD *********** by kladovka.net.ru **** >> Вычисление простого хеш-кода для блока данных
Вычисляет значение простой хеш-функции (xor + циклический сдвиг) для блока данных.
Описание параметров: Data - указатель на блок данных
DataSize - размер блока
Возвращаемое значение - значение хеш-функции
Зависимости: нет Автор: vuk, vuk@fcenter.ru Copyright: Алексей Вуколов Дата: 18 апреля 2002 г. ********************************************** }
function CalcHash(Data : pointer; DataSize : integer) : integer; register; asm push ebx push esi push edi mov esi, Data xor ebx, ebx or esi, esi jz @@Exit mov edx, DataSize or edx,edx jz @@Exit xor ecx,ecx
@@Cycle: xor eax,eax mov al,[esi] inc esi rol eax,cl xor ebx,eax inc ecx dec edx jnz @@Cycle
@@Exit: mov eax,ebx pop edi pop esi pop ebx end; |
Пример использования:
Code: |
//вычисление хеш-кода для строки
var i : integer; s : string; ... s := 'test'; i := CalcHash(pointer(S), length(S)); |
©Drkb::04020