【问题标题】:How to convert hash data to original data? [duplicate]如何将哈希数据转换为原始数据? [复制]
【发布时间】:2010-07-20 10:35:18
【问题描述】:

可能重复:
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));
}

【问题讨论】:

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


【解决方案1】:

你没有。 cryptographic hash 的全部意义在于它通常在计算上是不可行的。你能做的最好的就是检查已知的字典和rainbow tables。这些都对独特的明文没有多大帮助。也许您应该改用encryption algorithm

此外,您应该明确指定所需的算法。例如:

HashAlgorithm.Create("SHA1");

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 彩虹表并不是一种神奇的方法,它可以找到任意数量数据的哈希原像。
      猜你喜欢
      • 2011-07-09
      • 2019-05-31
      • 2011-08-21
      • 2015-11-26
      • 1970-01-01
      • 2019-10-27
      • 2019-05-23
      • 1970-01-01
      • 2013-10-26
      相关资源
      最近更新 更多