0

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

4

2 回答 2

2

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

如果您想找到这样的哈希,您可以希望有人已经找到它并将其放入彩虹表中。我试图在这里找到这样的哈希,但失败了:)

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

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年。

好吧,祝你好运!

于 2013-04-19T00:10:27.650 回答
1

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

于 2013-04-18T23:30:16.443 回答