关于加密:HMAC SHA256在C#中解密字符串

HMAC SHA256 decrypt string in C#

如何解密HMAC SHA256加密的字符串?

1
2
3
4
5
6
7
8
9
10
11
12
private string CreateToken(string message, string secret)
    {
      secret = secret ??"";
      var encoding = new System.Text.ASCIIEncoding();
      byte[] keyByte = encoding.GetBytes(secret);
      byte[] messageBytes = encoding.GetBytes(message);
      using (var hmacsha256 = new HMACSHA256(keyByte))
      {
        byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
        return Convert.ToBase64String(hashmessage);
      }
    }

如果有结果字符串,如何进行逆向工程?

提前致谢。


哈希是一种单向函数,根据定义,它是不可逆的。 您要达到的目标是什么?

如果用于密码比较之类的东西,则只需对您拥有的密码进行哈希处理,然后比较产生的哈希值即可。 没有任何进一步的背景,很难提出建议。


HMACSHA256:这是一个基于哈希的消息身份验证代码,用于验证不安全通道上的消息完整性,它是仅转发的哈希算法,无法解密。 它基于双方(发送方和接收方)都知道的共享密钥对消息进行哈希处理。发送方使用共享密钥并根据原始数据计算哈希值,然后发送原始数据和哈希值,然后接收者重新计算 来自原始数据的哈希值。 如果两个哈希值都匹配,则表示原始数据没有经过调整;如果不匹配,则意味着本场景验证的原始数据没有经过调整。