信息哈希
Info Hash
BitTorrent 对种子元信息中 info 字典计算所得的内容标识,用于区分分发任务、建立对等连接并在跟踪器或 DHT 中定位同一群组。
详细说明
信息哈希(Info Hash)是 BitTorrent 用于标识种子元信息和对应下载群组的哈希值。客户端在握手、跟踪器请求和分布式哈希表查询中使用它,使持有相同元信息的节点加入同一 swarm。信息哈希不是网站分配的编号,也不是对某个文件名字符串进行简单哈希。
在 BitTorrent v1 中,info hash 是 `.torrent` 元文件内 `info` 字典原始 bencode 编码的 SHA-1 摘要,长度为 20 字节,常显示成 40 个十六进制字符或 Base32 文本。`info` 字典包含建议名称、文件长度或文件列表、分片长度以及各分片 SHA-1 等字段。对该字典的任何编码级改变都可能产生新的信息哈希;位于 `info` 之外的 tracker 地址或注释通常不参与 v1 哈希。
信息哈希标识的是一套特定元信息,而不是抽象意义上“内容相同”的所有文件。两名发布者即使使用相同文件,只要分片大小、目录名称、文件顺序或 `info` 内其他字段不同,就会形成不同 swarm。反过来,客户端取得元信息后仍会用分片哈希验证下载数据,信息哈希本身不取代每个分片的完整性检查。 BitTorrent v2 由 BEP 52 定义,使用 SHA-256 计算 v2 info hash,并以 Merkle 树组织文件完整性信息。兼容型 hybrid torrent 可同时包含 v1 与 v2 所需结构,因而具有相应的两种标识。只写“info hash”而不说明协议版本,可能无法完整描述现代种子。
信息哈希不包含可直接下载的数据,也不保证当前存在做种者。它可以出现在 `.torrent` 文件、Magnet URI、客户端界面和数据库中;客户端还需通过 tracker、DHT、PEX 或其他途径找到节点并取得元信息与文件分片。哈希值也不提供发布者身份、版权状态或文件安全性的认证。