小编mar*_*985的帖子

尝试使用C#.Net对HMAC-SHA256进行编码

我尝试将HMAC-SHA256算法编码为函数

HMAC(K,m)= H((K⊕opad)∥H((K⊕ipad)∥m))

哪里

  • H是加密哈希函数,
  • K是填充到右侧的密钥,对散列函数的输入块大小加上额外的零,或者如果它比块大小长,则为原始密钥的散列,
  • m是要进行身份验证的消息,
  • ∥表示连接,
  • ⊕表示独占或(XOR),
  • opad是外部填充(0x5c5c5c ... 5c5c,一个块长的十六进制常量),
  • ipad是内部填充(0x363636 ... 3636,一个块长的十六进制常量).

这是我的代码

public static string MyHMACHash(string key , string message)
{
    Encoding encoding = Encoding.UTF8;
    //var md = System.Security.Cryptography.MD5CryptoServiceProvider.Create();
    SHA256 hash = SHA256Managed.Create();
    byte[] trans_5C = new byte[32];
    byte[] trans_36 = new byte[32];

    byte[] b_key = encoding.GetBytes(key);
    // TODO: also check if key is to short
    if (b_key.Length > 32)
        b_key = hash.ComputeHash(b_key);

    for (int i = 0; i < 32; i++)
    {
        trans_5C[i] = 92; …
Run Code Online (Sandbox Code Playgroud)

c# hmacsha1

4
推荐指数
1
解决办法
4412
查看次数

标签 统计

c# ×1

hmacsha1 ×1