如何将哈希数据转换为原始数据?

时间:2010-07-20 10:35:19

标签: c# .net visual-studio visual-studio-2008 cryptography

  

可能重复:
  Is it possible to decrypt md5 hashes?

我使用ComputeHash散列数据如何从散列数据中学习原始数据?

private void btn_Hash_Click(object sender, EventArgs e)
{
    HashAlgorithm ha = HashAlgorithm.Create();
    Stream file = new FileStream(@"C:\temp\simetrik.txt", FileMode.Open, FileAccess.Read);
    hashClass.hash = ha.ComputeHash(file);

    listBox1.Items.Add(BitConverter.ToString(hashClass.hash));
}

3 个答案:

答案 0 :(得分:6)

你没有。 cryptographic hash的全部意义在于,一般来说,反转在计算上是不可行的。您可以做的最好的事情是检查已知的词典和rainbow tables。这些都不会对独特的明文产生太大帮助。也许您应该使用encryption algorithm代替。

此外,您应该明确指定所需的算法。 E.g:

HashAlgorithm.Create("SHA1");

答案 1 :(得分:0)

唯一的方法是使用rainbow table,但我确定这不是你想要的。 :)

答案 2 :(得分:0)

你无法将其转换回来,哈希只能以一种方式工作。原因是(1)它丢失了数据 - 你的哈希使用的内存比原始数据少得多。考虑将字符串哈希到int(2)许多哈希算法是故意构造的,以使计算上不可能反转它们。

相关问题