![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 за моим авторством.