如何计算info_hash 参数?又名信息字典对应的哈希?
来自官方规格:
info_hash 元信息文件中信息值的编码形式的 20 字节 sha1 散列。请注意,这是元信息文件的子字符串。这个值几乎肯定会被转义。
这是否意味着只需从元信息文件中获取子字符串并对代表字节进行 sha-1 哈希处理?
....因为这是我尝试 12 次但没有成功的方式,这意味着我将生成的哈希与我最终应该得到的哈希进行了比较..它们不同..+跟踪器响应失败,未知洪流...或某物
那么如何计算 info_hash 呢?
如何计算info_hash 参数?又名信息字典对应的哈希?
来自官方规格:
info_hash 元信息文件中信息值的编码形式的 20 字节 sha1 散列。请注意,这是元信息文件的子字符串。这个值几乎肯定会被转义。
这是否意味着只需从元信息文件中获取子字符串并对代表字节进行 sha-1 哈希处理?
....因为这是我尝试 12 次但没有成功的方式,这意味着我将生成的哈希与我最终应该得到的哈希进行了比较..它们不同..+跟踪器响应失败,未知洪流...或某物
那么如何计算 info_hash 呢?
元文件已经被编码,所以我不明白你为什么要再次编码?
我终于在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));
这假设“信息”块是种子文件中的最后一个块(错误?)
不要排序或类似的东西,只需使用原始种子文件的子字符串。
为我工作。
bdecode 元文件。然后它很简单sha1(bencode(metadata['info']))
(即再次只对信息字典进行编码,然后对其进行哈希处理)。