rfc2104 MD5 issue

本文关键字:issue MD5 rfc2104 | 更新日期: 2023-09-27 17:49:38

有人能给我一个例子在c#中如何用MD5 HASH字符串,关于这个文档:http://www.ietf.org/rfc/rfc2104.txt

我使用了MD5CryptoServiceProvider,但没有成功。我试图与外部软件沟通,我们必须有相同的哈希。我问了他们的开发人员,他们告诉我使用这个算法:http://www.ietf.org/rfc/rfc2104.txt

所以我的问题是如何使我的HASH等于他们的…非常感谢您的建议

rfc2104 MD5 issue

EDIT

根据你的评论,我删除了我之前的回答,因为它被误解了。我尝试了一些新的方法,希望能有所帮助。

HMAC密钥(十六进制格式)

  string key = "52320e181a481f5e19507a75b3cae4d74d5cfbc328f7f2b738e9fb06b2e05b55b632c1c3d331dcf3baacae8d3000594f839d770f2080910b52b7b8beb3458c08";
        string payload = "1116Software program14200503031234341420050303123434";

        int NumberChars = key.Length;
        byte[] bytes = new byte[NumberChars / 2];
        for (int i = 0; i < NumberChars; i += 2)
            bytes[i / 2] = Convert.ToByte(key.Substring(i, 2), 16);
        byte[] keyInBytes = bytes;
        byte[] payloadInBytes = Encoding.UTF8.GetBytes(payload);
        var md5 = new HMACMD5(key);//This should match with service key
        byte[] hash = md5.ComputeHash(payloadInBytes);
        var result = BitConverter.ToString(hash).Replace("-", string.Empty);

您应该有一个密钥,该密钥必须等于您所引用的服务中使用的密钥。那么结果将是相同的