【问题标题】:Is it possible for a sha512 hash to start with 64 zeros? [closed]sha512 哈希是否可以以 64 个零开头? [关闭]
【发布时间】:2013-04-12 06:14:15
【问题描述】:

我只是在考虑在哈希中重复的数字,我想知道是否有可能 sha512 哈希的一半由 64 个连续的零组成。

【问题讨论】:

  • 可能——如果不能,那至少在理论上是一个弱点。同时,祝你好运找到产生特定输出的输入。
  • 哈哈,我知道,我敢肯定这需要大量的计算能力。
  • 说得客气了。事实上,使用地球上的每一台计算机,在我们都死之前找到它的机会微乎其微。
  • 64 个连续的零是指零个十六进制数字?即“仅”32个零字节?或者你的意思是零位?
  • @CodesInChaos 有什么区别?

标签: python hash cryptography sha512


【解决方案1】:

正如克里斯所说 - 你应该有同样的机会得到这样的散列作为任何其他散列。所以这个概率是 1 / 2^64。

如果您想找到这样的哈希,您可以希望有人已经找到它并将其放入rainbow tables。我试图找到这样的哈希here,但失败了:)

您也可以自己尝试一下。我尝试了这样一个幼稚的脚本:

import random
import string
import hashlib
import datetime
s=string.lowercase+string.digits
random.seed(datetime.datetime.utcnow())

while 1:
    x = ''.join([random.choice(s) for a in range(random.randint(2,1024))])
    if hashlib.sha512(x).hexdigest().startswith('0000000000000000'):
        print x
        exit()

但后来我想到我的机会仍然很小。所以.. 算法必须做的预期迭代次数是 2^64。我的机器在

中进行了 100000 次迭代
real    1m7.762s
user    1m5.908s
sys     0m0.123s

所以迭代需要 0.0006776 秒。

总而言之 - 大约需要 396357000 才能在我的机器上得到结果而不进行优化。

好吧,祝你好运!

【讨论】:

  • 注意记录sha512是64字节,也就是512位,所以sha512有2**512个可能的值。
【解决方案2】:

它与任何其他哈希值一样可能,或者应该是。

【讨论】:

  • 非常有趣,我想知道什么字符串会等于那个哈希值。
猜你喜欢
  • 2016-09-25
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
相关资源
最近更新 更多