代码(道歉丑),我跑这来计算哈希的洪流,但它给我不同的答案比我在变速箱直接打开洪流:Python3计算洪流哈希
我“M此页面上r_000测试:http://gen.lib.rus.ec/repository_torrent/
传输给了我:63a04291a8b266d968aa7ab8a276543fa63a9e84
我的代码给我:1882ff6534ee4aa660e2fbf225c1796638bea4c0
import bencoding
from io import BytesIO
import binascii
import hashlib
with open("cache/r_000.torrent", "rb") as f:
data = bencoding.bdecode(f.read())
info = data[b'info']
hashed_info = hashlib.sha1(info[b'pieces']).hexdigest()
print(hashed_info)
任何想法,我搞砸了?谢谢!
这已经问。看看[这个答案](https://stackoverflow.com/a/28162042/3151902)。 – user3151902
好像你在散列'pieces'值而不是'info'字典 – Encombe
是的,需要退后一步再看一遍。好的,所以解决方案是对整个信息字典进行编码,然后对其进行散列。 –