基于片段长度和信息哈希的Bittorrent总大小

问题描述 投票:0回答:1

我正在遵循非官方的bittorrent规范,以python编写bittorrent客户端。

我正在尝试计算样本.torrent文件中的片段总数,然后是所有片段的总长度。

我从元信息中检索的片段长度为2 ^ 21。根据bittorrent spec Wiki,“ info”键下的“ pieces”值是每个片段的SHA-1哈希值,它们被连接为一个长字节字符串。

他们说我应该按ceil(总长度/件大小)获得件数,所以我想知道是否可以从件哈希中获得总长度?

我在字节字符串中有散列,我收到的长度为38560。38560 * 8位比2 ^ 21小得多,所以我认为我需要对此进行解码以计算总长度?

python sha1 bittorrent
1个回答
0
投票

洪流中的最后一块不一定是一块的全部大小,因此您只能从哈希列表和块大小中提取大概的总大小。另外,填充(explicitimplicit)可以进一步扩大散列散列所覆盖的字节范围。

您已经注意到,通过对每个文件的长度求和,可以获得准确的总长度。

© www.soinside.com 2019 - 2024. All rights reserved.