Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Hmac MD5 Delphi


Pepe ©   (2011-07-30 23:23:00) 

Доброго времени суток.
Возник вопрос при генерации Хешы.
Кусок из C#:
Data  = 6D 79 6C 6F 67 69 6E 70 61 73 73 77 6F 72 64
Key1 = 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0F
byte[] hash = new HMACMD5(md5.ComputeHash(data)).ComputeHash(key1);
В итоге Hash должен быть побайтно равен: 57 B6 68 77 9E 9E C4 DA C5 63 84 0F F1 45 63 46

Но при переносе на Delphi: Байты принимают совсем иные значения. Пользуюсь модулем synacode из набора Synapse.

Hash:= HMAC_MD5(MD5(data),Key1);

Быть может я не правильно перевёл код? Или где-то другая загвоздка?!


Омлет   (2011-08-03 09:33:00) [1]

Естественно, всё наоборот, потому что надо читать документацию.
http://msdn.microsoft.com/ru-ru/library/system.security.cryptography.hmacmd5.aspx

> byte[] hash = new HMACMD5(md5.ComputeHash(data)).ComputeHash(key1);

Должно быть так:

byte[] hash = new HMACMD5(key1).ComputeHash(md5.ComputeHash(data));

В конструктор передается ключ, а в ComputeHash - шифруемые данные.


NanoTek   (2011-08-02 23:24:00) [2]

Странно получается, если поменять аргументы местами HMAC_MD5(Key1,MD5(data)); - получается хеш который должен у вас выйти на выходе.


Dennis I. Komarov   (2011-08-01 13:31:00) [3]


> Dimka Maslov ©   (01.08.11 13:16) [1]

Тебе персональный респект за него, давно юзаю...


Dimka Maslov   (2011-08-01 13:16:00) [4]

поройся в интернетах на предмет MD5.pas за моим авторством.


Наверх

Титульная страница Поиск, карта сайта Написать письмо