【问题标题】:HMAC-MD5 with CryptoApi带有 CryptoApi 的 HMAC-MD5
【发布时间】:2013-05-02 10:11:16
【问题描述】:

我采用了微软网站上的SHA1 HMAC example,并根据stack-overflow post和网上的一些其他建议进行了修改,但是我无法产生正确的值。

基本上我只是将 SHA1 替换为 MD5 CALG_SHA1 -> CALG_MD5。

谁有一个可行的例子?

CryptDeriveKey() 使用什么算法作为密码(RC2 或 RC4)是否重要?

谢谢!

编辑: 找到工作代码here

【问题讨论】:

  • 什么是正确的值?你从哪里弄来的?
  • 您能否提供相关的代码 sn-p 以及您的输入和输出,并指出错误和您期望的输出?
  • 很遗憾,我的公司 DLP 不允许我发布源代码。基本上我以 SHA1 为例,用 CALG_MD5 替换了 CALG_SHA1。我正在比较 Python 的 hmac 计算的输出值和维基百科关于 HMAC MD5 的文章中的一些示例值

标签: c windows winapi cryptoapi


【解决方案1】:

您的值与示例不同,因为您使用不同的键: 可以使用 Linux openssl dgst -md5 -hmac key < input 命令获取示例值。如果它的长度小于 MD5 散列块长度(64 字节),则此命令使用密钥 原样,否则它使用 MD5(key) 作为密钥,而不是使用 CryptDeriveKey(RC4, MD5(key)) 派生的密钥,例如在您的实施中。

【讨论】:

    猜你喜欢
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2014-07-02
    相关资源
    最近更新 更多