首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解SHA 256

了解SHA 256
EN

Stack Overflow用户
提问于 2020-10-08 02:04:08
回答 1查看 170关注 0票数 1
代码语言:javascript
复制
import hashlib
previous_proof = 0
new_proof = 0
check_proof = False

while check_proof is False:
  hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
  if hash_operation[:4] == '0000':
      check_proof = True
  else:
    new_proof+=1
print(hash_operation)
print(   new_proof)

我编写了这个脚本,用于在sha256中查找以'0000‘开头的字符串。谁能解释一下,为什么我把‘000000’而不是'0000‘放在上面会花更多的时间来查找字符串?它应该花费更少的时间,因为我在开始时有更多的零,对吗?

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 02:11:11

与'0000‘相比,以'000000’开头的散列要少得多,因为这是允许开始的限制。

在/假设均匀分布的情况下,这是256 (288)倍:所以使用大约256倍的长度似乎是合理的。

考虑到对于每个‘000000’4个字符的开始,还有'0000‘-’0000FF‘6个字符的开始,其中位置5和6的字符的256 ('00'-'FF')可能性中只有1 ('00')个匹配。

代码语言:javascript
复制
              Matches 4?   Matches 6?
0000 00       Yes          Yes
0000 01       Yes          No
0000 10       Yes          No
0000 11       Yes          No
(many more)   Yes          No
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64249840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档