如何将Md5Hash值转换为字符串..
我已将字符串值转换为哈希值。
我使用了to方法将MD5Hash转换为字符串
`
public static string ConvertStringtoMD5(string strword)
{
MD5 md5 = MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword);
byte[] hash = md5.ComputeHash(inputBytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("x2"));
}
return sb.ToString();
}
`
string has = ConvertStringtoMD5(“prasad”);
其回报哈希值='c246ad314ab52745b71bb00f4608c82a'
使用此哈希值我需要获取名为 prasad 的字符串
我怎么能做到这一点,你能否建议实现这个目标..
答案 0 :(得分:7)
哈希是单向的。一旦编码,它们的设计不是未编码的。话虽如此,可以使用Rainbow Tables破解它们。要在C#中创建自己的彩虹表,可以查看this article。
请记住,Rainbow Tables确实有局限性,并且100%的时间都不起作用。如果MD5哈希值为salted,则尤其如此。
答案 1 :(得分:1)
Hashing functions只是单向函数 - 无法获取输入。
您可以尝试使用例如彩虹表,但由于可能的哈希数量有限,您可能会获得另一个具有相同MD5哈希而不是输入的字符串。
答案 2 :(得分:0)
MD5是单向散列,你不能(没有强力技术)从散列中获取原始字符串。
答案 3 :(得分:0)
哈希是单向函数。这意味着您无法使用散列输出来获取原始输入。
比较两个输入是否相同的方法之一是对新输入进行散列并根据已经散列的输出进行检查,然后只需检查值是否相同。请记住,在某些算法中,可能会发生冲突,这意味着两个不同的输入可能会生成相同的输出。
答案 4 :(得分:0)
你无法反转MD5方法,它是一种哈希算法。有无限的值可以导致相同的哈希字符串。