security - 使用 C# 使用 HMAC-MD5 对字符串进行签名

标签 security c#-4.0 hmac

我获得了以下 HMAC key (十六进制格式):

52320e181a481f5e19507a75b3cae4d74d5cfbc328f7f2b738e9fb06b2e05b55b632c1c3d331dcf3baacae8d3000594f839d770f2080910b52b7b8beb3458c0 8

我需要签署这个字符串:

1100002842850CHF91827364

结果应该是这样的(十六进制格式):

2ad2f79111afd818c1dc0916d824b0a1

我有以下代码:

string key = "52320e181a481f5e19507a75b3cae4d74d5cfbc328f7f2b738e9fb06b2e05b55b632c1c3d331dcf3baacae8d3000594f839d770f2080910b52b7b8beb3458c08";
string payload = "1100002842850CHF91827364";

byte[] keyInBytes = Encoding.UTF8.GetBytes(key);
byte[] payloadInBytes = Encoding.UTF8.GetBytes(payload);

var md5 = new HMACMD5(keyInBytes);
byte[] hash = md5.ComputeHash(payloadInBytes);

var result = BitConverter.ToString(hash).Replace("-", string.Empty);

但是,我没有得到结果。我做错了什么?

最佳答案

使用 key HMAC md5 进行散列时

        var data = Encoding.UTF8.GetBytes(plaintext);
        // key
        var key = Encoding.UTF8.GetBytes(transactionKey);

        // Create HMAC-MD5 Algorithm;
        var hmac = new HMACMD5(key);

        // Compute hash.
        var hashBytes = hmac.ComputeHash(data);

        // Convert to HEX string.
        return System.BitConverter.ToString(hashBytes).Replace("-", "").ToLower();

关于security - 使用 C# 使用 HMAC-MD5 对字符串进行签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415438/

相关文章:

Delphi HMAC SHA512 签署了对 Bittrex 交易所的调用

sql-server - 如何处理来自SQL Server用户的错误?

php - php中的密码/登录系统

Android设备ID潜在风险?

c# - 如何返回 JSON 而不是关联数组

c# - 类型 'MyApp' 已经包含 'MystatusBar' 的定义

docker - 如何修复 Docker 镜像中的严重漏洞?

xaml - 如何在Windows 8/WinRT中将SVG文件转换为XAML

node.js - 使用 Node.js 的 AWS 签名版本 4 S3 上传

Android:Java 中的 Hmac SHA512