如何计算的info_hash参数 ? 阿卡对应信息dictionar哈希?
来自官方的规格:
info_hash来自元信息文件中的info值中B编码格式的20字节的SHA1哈希。 请注意,这是元信息文件的一个子。 这个值几乎肯定要被转义。
这是否意味着只要从元信息文件中的串并做了reprezentative字节的SHA-1散列?
....因为这是我试过12次,但没有更迭意味着我比较与一个结果散列我应该结束了with..and它们之间的区别..that + Tracker回应故障,未知的洪流......或某物
那么,你如何计算info_hash?
bdecode元文件,然后它只是“SHA1(bencode(元数据[‘信息’]))”(即bencode只有信息快译通一遍,然后凑那个)。
图元文件已B编码,所以我不明白为什么你再编码呢?
我终于得到了在Java代码中这方面的工作,这是我的代码:
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));
这是假设的“信息”块是在torrent文件的最后一个块(错了吗?)
不要排序或类似的东西,只是使用原始种子文件的一个子。
我的作品。
访问https://gist.github.com/shxsun/9085646 ,这是一个Python代码,说明如何info_generate,好运气。