Вычисление простого хеш-кода для блока данныхDelphi , Синтаксис , Память и УказателиВычисление простого хеш-кода для блока данных
Автор: Алексей Вуколов { **** UBPFD *********** by delphibase.endimus.com **** >> Вычисление простого хеш-кода для блока данных Вычисляет значение простой хеш-функции (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; Пример использования: //вычисление хеш-кода для строки var i: integer; s: string; begin s := 'test'; i := CalcHash(pointer(S), length(S)); Программный код - функция Delphi под именем Вот разбивка кода:
Пример использования показывает, как рассчитать хеш-значение для строки с помощью функции
В этом примере строка Implemented this way, the code is quite efficient and should work correctly for most purposes. However, keep in mind that it's a simple hash function and may not provide the same level of security as more advanced cryptographic hash functions like SHA-256 or MD5. Вычисление простого хеш-кода для блока данных - это функция, которая использует XOR и циклический сдвиг для расчета значения хеш-функции для указанного блока данных. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Память и Указатели ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |