-2

如何将 Md5Hash 值转换为字符串..

我已经将字符串值转换为哈希..

我已经使用 to 方法将 MD5Hash 转换为字符串

`
公共静态字符串 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(); }

`

字符串有=ConvertStringtoMD5("prasad");

它的返回哈希值 = 'c246ad314ab52745b71bb00f4608c82a'

使用这个哈希值我需要得到名为 prasad的字符串

我怎样才能做到这一点,你能建议做到这一点吗..

4

5 回答 5

8

哈希是单向的。一旦编码,它们就不会被设计为未编码。话虽如此,它们可以使用Rainbow Tables来破解。要在 C# 中创建自己的彩虹表,可以查看这篇文章

请记住,Rainbow Tables 确实有局限性,并且不能 100% 地工作。如果 MD5 哈希已加盐,则尤其如此。

于 2013-10-29T05:03:33.843 回答
1

散列函数只是一种方式函数 - 没有办法获取输入。

您可以尝试使用例如彩虹表,但由于可能的哈希数量有限,您可能会得到另一个具有相同 MD5 哈希的字符串,而不是输入。

于 2013-10-29T04:55:55.940 回答
1

散列是一种方式功能。这意味着您无法使用散列输出获得原始输入。

比较两个输入是否相同的一种方法是对新输入进行哈希处理,并将其与您已经拥有的已哈希输出进行检查,然后只需检查值是否相同。请记住,在某些算法中,可能会发生冲突,这意味着两个不同的输入可能会生成相同的输出。

于 2013-10-29T04:56:28.867 回答
0

您不能反转 MD5 方法,它是一种散列算法。有无限的值可以产生相同的哈希字符串。

于 2013-10-29T04:57:26.207 回答
0

MD5 是一种单向哈希,您无法(没有暴力破解技术)从哈希中获取原始字符串。

于 2013-10-29T04:54:43.367 回答