1

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

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

3 回答 3

1

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

于 2012-08-26T06:10:33.457 回答
1

据我所知,你不能取消散列一些东西。它完全违背了散列的想法。您确定您没有考虑“加密”吗?与对称或非对称密钥一样?

于 2012-08-26T04:35:21.723 回答
0

您不应该能够反转哈希 -根据定义,它是一种单向函数。您可能可以通过使用彩虹表或暴力猜测来猜测 md5 哈希的明文是什么,但它很昂贵,并不是您真正想要的。

于 2012-08-26T04:38:57.923 回答