【发布时间】:2018-06-22 08:04:52
【问题描述】:
所以我在这里生成随机的十六进制值,对它们进行散列并与预先给定的散列进行比较。该程序测试了大约 4 000 个哈希值,然后停止运行而没有出现错误。
这是代码的循环部分:
def loop():
randomhex = binascii.b2a_hex(os.urandom(4))
hash_object = hashlib.sha1(randomhex)
hashh = hash_object.hexdigest()
print(hashh)
if hashh == sha:
done()
else:
loop()
【问题讨论】:
-
你意识到你正在递归调用你的 loop() 函数吗?今晚有什么循环?
-
这似乎是递归深度问题,使用sys.setrecursionlimit 或迭代解决问题。