code ci-dessous (excuses pour la laideur), je suis en ce pour calculer le hachage pour un torrent, mais il me donne une réponse différente que quand j'ouvre ce torrent directement dans la transmission:python3 calcul torrent hachage
I « m test sur r_000 sur cette page: http://gen.lib.rus.ec/repository_torrent/
Transmission me donne: 63a04291a8b266d968aa7ab8a276543fa63a9e84
Mon code me donne: 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)
Une idée de ce que j'ai foiré? Merci!
Cela a déjà été demandé. Jetez un oeil à [cette réponse] (https://stackoverflow.com/a/28162042/3151902). – user3151902
On dirait que vous êtes en train de hacher la valeur de 'pieces' au lieu du dictionnaire' info'- – Encombe
Oui, il fallait prendre du recul et regarder à nouveau. Ok, donc la solution est de bencoder tout le dictionnaire d'info, puis hacher cela. –