我有一些简单的代码,但我需要从哈希代码中恢复我的纯文本。
private string Hash(string ToHash)
{
// First we need to convert the string into bytes,
// which means using a text encoder.
Encoder enc = System.Text.Encoding.ASCII.GetEncoder();
// Create a buffer large enough to hold the string
byte[] data = new byte[ToHash.Length];
enc.GetBytes(ToHash.ToCharArray(), 0, ToHash.Length, data, 0, true);
// This is one implementation of the abstract class MD5.
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(data);
return BitConverter.ToString(result);
}
答案 0 :(得分:1)
据我所知,你不能解开某些东西。这完全违背了哈希的想法。你确定你没有考虑'加密'吗?与对称或非对称密钥一样?
答案 1 :(得分:0)
你不应该反转哈希 - 它是by definition一个单向函数。您可以通过使用rainbow table或蛮力猜测来猜测md5哈希的明文是什么,但它很昂贵,并不是您真正想要的。
答案 2 :(得分:0)
您是否尝试将输入的密码与存储的密码哈希值进行比较?如果是这样,那么您只需要对输入的密码进行哈希处理,然后比较两个哈希值以查看它们是否匹配,而不是尝试取消存储的密码。