如何解密HMAC SHA256加密字符串?
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);
}
}
如果我有结果字符串,我该如何进行逆向工程?
提前致谢。
答案 0 :(得分:5)
哈希是一种单向函数,根据定义它不可逆。你想要达到的目标是什么?
如果是密码比较之类的东西,那么只需对您拥有的密码进行哈希处理,然后比较生成的哈希值。没有任何进一步的背景,很难建议。
答案 1 :(得分:1)
HMACSHA256:这是一个基于哈希的消息认证码。它用于验证不安全通道上的消息完整性。它是一种仅向前哈希算法,无法解密。它基于双方(发送方和接收方)已知的共享密钥来散列消息.Sender使用共享密钥并从原始数据计算散列值并发送原始数据和散列值,然后接收方重新计算来自原始数据的哈希值。如果两个哈希值匹配,则表示原始数据中没有调整,如果不匹配,则意味着在原始数据中调整此方案验证失败。