2013-05-02 3 views
2

Я принял SHA1 HMAC example с сайта Microsoft и изменил его в соответствии с этим stack-overflow post и некоторыми другими предложениями в Интернете, однако я не могу создать правильные значения.HMAC-MD5 с CryptoApi

В основном я только что заменил SHA1 MD5 CALG_SHA1 -> CALG_MD5.

У кого-нибудь есть рабочий пример?

Имеет значение, какой алгоритм используется для CryptDeriveKey() для пароля (RC2 или RC4)?

Спасибо!

Edit: Найдено рабочего кода here

+0

Каковы правильные значения? Откуда вы их взяли? – Nikolai

+0

Можете ли вы предоставить соответствующий фрагмент кода вместе с вашим вводом и выводом и указать ошибку и ожидаемый результат? –

+0

К сожалению, мои компании DLP не позволяют мне отправлять исходный код. В основном я взял пример SHA1 и заменил CALG_SHA1 на CALG_MD5. Я сравниваю значения для вывода из расчета hmac Python и некоторые примеры из статьи Википедии о HMAC MD5 – Grim

ответ

1

Ваших ценности отличаются от примеров причин использовать разные ключи: Пример значения может быть получено с использованием Linux openssl dgst -md5 -hmac key < input команды. Эта команда использует ключ as is, если его длина меньше длины блока хэша MD5 (64 байта), в противном случае он использует MD5 (ключ) как ключ, а не ключ, полученный с использованием CryptDeriveKey (RC4, MD5 (ключ)), как в вашей реализации.