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