2

这个问题有点晦涩,我试图找出是否可以“解决”输入到 ruby​​ 中的哈希值的值,它看起来像这样:

我有:@hash = Digest::SHA512.hexdigest(value1 + value2 + value3)

Value2 & value3 是已知的,@hash 的值是已知的。值 1 是“未知”。在这种情况下,是否可以在 ruby​​ 中求解 value1,或者这需要大量的计算能力/时间?

4

2 回答 2

1

如果 v2 和 v3 是整数。从理论上讲,您可以尝试通过遍历数字并查找哈希何时匹配来强制它。然后减去 v2 和 v3。但是,如果您的一组可能数字都是实数,那将非常困难。你最好在多台机器上运行它,这些机器的实数旋转子部分变化很大。那是你最好的选择。这是假设值是整数。

于 2013-06-04T17:09:06.873 回答
1

唯一的方法是:蛮力

  1. 猜一个可能的值value1
  2. 计算哈希
  3. 检查它是否与目标哈希匹配。如果没有转到 1

这只有在value1足够容易猜到的情况下才可行。GPU 在这方面比 CPU 更快,所以你可能会使用一堆 ATI CPU 来解决这个问题。

没有一种廉价的方法来计算与给定输出匹配的输入是安全散列函数的基本属性,称为第一原像抗性。对于 SHA-512,我们知道没有比暴力破解更快的方法了。

于 2013-06-04T19:42:08.357 回答