2010-10-28 5 views

Répondre

6

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) 
+0

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

Questions connexes