【发布时间】:2021-06-11 19:55:15
【问题描述】:
这是一个简单的工作证明脚本,它采用 md5 算法。有什么办法可以用它来传输到 sha256 吗?
# proof-of-work.py
import md5
string = "1"
complete = False
n = 0
while complete == False:
curr_string = string + str(n)
curr_hash = md5.new(curr_string).hexdigest()
n = n + 1
# slows performance drastically
## print curr_hash
if curr_hash.startswith('000000'):
print curr_hash
print curr_string
complete = True
【问题讨论】:
-
这不是问题
-
我需要制作一个简单的 CLI 脚本,当给定一个 64 字节的字符串时,它会找到一个合适的 4 字节前缀,以便前缀的 SHA256 哈希与原始字节字符串相结合, 最后两个字节为 0xca, 0xfe。脚本应该期望原始字符串以十六进制格式传递,并且应该返回两行,第一行是找到的 SHA256 字符串,第二个是使用的 4 字节前缀(十六进制格式)。
-
@leftjoin 平均而言,如果你散列 2^31 个均匀随机值,那么你应该会找到这样的散列值。
标签: python algorithm cryptography md5 sha256