简体   繁体   中英

The torrent info_hash parameter

How does one calculate the info_hash parameter ? Aka the hash corresponding to the info dictionar??

From official specs:

info_hash The 20 byte sha1 hash of the bencoded form of the info value from the metainfo file. Note that this is a substring of the metainfo file. This value will almost certainly have to be escaped.

Does this mean simply get the substring from the meta-info file and do a sha-1 hash on the reprezentative bytes??

.... because this is how i tried 12 times but without succes meaning I have compared the resulting hash with the one i should end up with..and they differ ..that + tracker response is FAILURE, unknown torrent ...or something

So how do you calculate the info_hash?

The metafile is already bencoded so I don't understand why you encode it again?

I finally got this working in Java code, here is my code:

byte metaData[];  //the raw .torrent file

int infoIdx = ?;  //index of 'd' right after the "4:info" string

info_hash = SHAsum(Arrays.copyOfRange(metaData, infoIdx, metaData.length-1));

This assumes the 'info' block is the last block in the torrent file (wrong?)

Don't sort or anything like that, just use a substring of the raw torrent file.

Works for me.

bdecode the metafile. Then it's simply sha1(bencode(metadata['info'])) (ie bencode only the info dict again, then hash that).

访问https://gist.github.com/shxsun/9085646 ,这是一个python代码,解释如何info_generate,祝你好运。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM