我只是考虑在哈希中重复的数字,我想知道sha512哈希的一半是否有可能由64个连续的零组成。
答案 0 :(得分:2)
正如克里斯所说 - 你应该有同样的机会获得任何其他哈希的哈希。所以概率是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 年。
好吧,祝你好运!答案 1 :(得分:1)
它与任何其他哈希值一样可能,或者应该是。