Le hachage info est le hachage SHA-1 du dictionnaire Info au format bencoded.
Le fichier torrent contient une représentation bencoded du dictionnaire méta information qui à son tour contient le dictionnaire info .
Vous devez obtenir le info dictionnaire partie du fichier afin de calculer son hachage. En supposant que vous avez accès à un codeur et décodeur bencode vous pouvez:
- Décoder le fichier entier
- prendre le dictionnaire d'info partie
- réencodez pour le hachage.
Dans le code pseudo:
metainfo = b_decode(contents_of("file.torrent"))
info = metainfo.getValue("info")
encoded_info = b_encode(info)
info_hash = sha1(encoded_info)
Ce serait une erreur dans certains cas, car il trierait une unsorted info-dict et la convention conclue lorsqu'une info-dict pour une raison quelconque est non triés, est de hachez l'info-dict brute telle quelle (non triée). Une méthode plus sûre est décrite par Arvid ici: http://stackoverflow.com/questions/19749085/calculating-the-info-hash-of-a-torrent-file/19800109#19800109 – Encombe