从C#中的哈希代码中获取纯文本

时间:2012-08-26 04:28:38

标签: c# web-services hash md5

我有一些简单的代码,但我需要从哈希代码中恢复我的纯文本。

    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);
    }

3 个答案:

答案 0 :(得分:1)

据我所知,你不能解开某些东西。这完全违背了哈希的想法。你确定你没有考虑'加密'吗?与对称或非对称密钥一样?

答案 1 :(得分:0)

你不应该反转哈希 - 它是by definition一个单向函数。您可以通过使用rainbow table或蛮力猜测来猜测md5哈希的明文是什么,但它很昂贵,并不是您真正想要的。

答案 2 :(得分:0)

您是否尝试将输入的密码与存储的密码哈希值进行比较?如果是这样,那么您只需要对输入的密码进行哈希处理,然后比较两个哈希值以查看它们是否匹配,而不是尝试取消存储的密码。