Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.06.01;
Скачать: CL | DM;

Вниз

md5   Найти похожие ветки 

 
listvenniza   (2013-08-07 15:56) [0]

прошу помощи.
трассирую прогу под нет.
идет вызов стандартной с крипто апи md5sum
передается строка: "C1BFEBFBFF000306A98AB5C567"
функция возвращает: ""3898a80d277947193310068008b5f1ae""

перепробывал на дельфи все найденные мд5 вариации, в основном на выходе имею: "7c195f9e5b6364e712f8f07b08cc0ec2"
он лайн сервисы то же дают.

в какую сторону копать? вроде бы пробывал и юникодные варианты строки. или может организация функции GetMd5Sum другая?


 
listvenniza   (2013-08-07 15:58) [1]

реализация  GetMd5Sum:

public static string GetMd5Sum(string str)
{
   Encoder encoder = Encoding.Unicode.GetEncoder();
   byte[] bytes = new byte[str.Length * 2];
   encoder.GetBytes(str.ToCharArray(), 0, str.Length, bytes, 0, true);
   byte[] buffer2 = new MD5CryptoServiceProvider().ComputeHash(bytes);
   StringBuilder builder = new StringBuilder();
   for (int i = 0; i < buffer2.Length; i++)
   {
       builder.Append(buffer2[i].ToString("x2"));
   }
   return builder.ToString();
}


 
ProgRAMmer Dimonych ©   (2013-08-07 17:27) [2]

Рискну предположить, что дело в том, как интерпретируется строка теми же онлайн-сервисами и библиотеками. Наверняка берут в однобайтовой кодировке или в UTF-8, или ещё как-нибудь. А в Вашей GetMd5Sum() используется UTF-16. Хеш считается не от строки, а от массива байтов. Соответственно если реализация хеш-функции правильная (а это скорее всего так), проблема в том, как строка преобразуется в массив байтов.

Ещё, помнится, в универских лабах столкнулся с отличиями в значениях HMAC, полученных CryptoAPI и своей реализацией строго по RFC, но здесь ведь не этот случай. Да и не столь важно, совпадают ли эеши с эталонными. Важнее, чтобы совпадали у отправителя и получателя.

А какова конечная цель?


 
listvenniza   (2013-08-07 17:31) [3]

спасибо, вопрос закрыт!

вообщем нужно было в дельфи перевести в юникод
Encoding.Unicode.GetEncoder("...")  затем уже считать мд5 полученных байтов.



Страницы: 1 вся ветка

Текущий архив: 2014.06.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
6-1253516879
miek
2009-09-21 11:07
2014.06.01
TWebBrowser: превью


15-1384962567
Mamed
2013-11-20 19:49
2014.06.01
Borland Delhi 2005


3-1298717850
ddd329
2011-02-26 13:57
2014.06.01
Вложенные таблицы


15-1385099301
MonoLife
2013-11-22 09:48
2014.06.01
TDBLookupComboBox в wine.


3-1298678262
istok
2011-02-26 02:57
2014.06.01
LDAP...