Torrent 元信息身份与布局检查
从本地 .torrent 的原始 info 字节计算 v1 info-hash,列出声明的文件偏移和片段范围,并保存完整布局与本地磁力链接文本。
- 1添加输入
- 2确认后运行
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
将种子身份与客户端中的值比较,查看多个声明文件如何共享同一片段。身份取决于原始 info 字节;无需连接种子客户端或 tracker。
如何使用
- 选择一个原始 BEP3 v1 .torrent。
- 比较 info-hash、总长度和声明布局;一个片段可以跨越两个文件。
- 下载完整 JSON、CSV 与磁力链接文本,再在种子客户端比较身份。
支持范围与限制
一次选择一个不超过 4 MiB 的 .torrent。最多 5,000 个声明文件、100,000 个片段哈希、100,000 个 bencode 值,嵌套深度最多 64。根名称和每个 UTF-8 路径组件不超过 4,096 字节;计入重复根名称的完整路径累计不超过 8 MiB。长度和累计偏移须为安全整数,正片段长度最多 16 MiB。规范整数 token 最多 32 个 ASCII 字节;多文件路径在根名称之后最多 64 个组件。
接受严格编码的 BEP3 v1:整数和字节长度采用规范写法,字典键按原始字节排序且唯一,名称为有效 UTF-8,length 与 files 恰有一个。片段哈希数量须匹配连接后的总长度。拒绝 v2、混合种子、文件属性和填充扩展。
拒绝不安全或有歧义的路径:空组件、点号跳转、斜线或反斜线、冒号、控制字节、结尾点号或空格、重复完整路径,以及某个文件同时作为父目录的布局。只读取路径元数据,不向声明路径写入文件。
完整 JSON、CSV 与磁力链接下载累计不超过 24 MiB;任一组合预算超出时整次拒绝。表格最多预览 200 个文件,每格仅显示前 240 个字符;文本与复制显示摘要和前 20 个文件。成功下载保留完整路径和全部片段哈希。CSV 疑似公式路径加前置单引号,JSON 保留原文。
info-hash 是原始 info 字节区间的 SHA-1,不是 pieces 字段或整个 .torrent 的哈希。片段范围从 0 开始且含首尾;空文件范围为 null。不验证文件内容、签名、可信度、tracker 可用性或 peer。磁力文本仅有 xt 和 dn 参数,不发起网络请求。
操作示例
示例输入
选择 demo.torrent
示例参数
{"params":{}}示例输出
{
"name": "Demo",
"infoHash": "68493278a4cf442fb656c0e6ee7626e54294e6e6",
"totalLength": "8",
"pieceLength": "4",
"pieceCount": 2,
"fileCount": 3,
"preview": [
{
"path": "Demo/a.txt",
"length": "3",
"offset": "0",
"firstPiece": 0,
"lastPiece": 0
},
{
"path": "Demo/b.bin",
"length": "5",
"offset": "3",
"firstPiece": 0,
"lastPiece": 1
},
{
"path": "Demo/empty.txt",
"length": "0",
"offset": "8",
"firstPiece": null,
"lastPiece": null
}
]
}出现问题时
保留原始文件。在生成端导出不含 v2、混合或文件属性扩展的 BEP3 v1,修复不规范编码或有歧义路径。任一数量、路径或完整输出预算超限时,缩小输入后重试。
常见问题
info-hash 相同能证明下载文件完整吗?
不能。它标识元信息中的 info 字典。本工具不接收文件内容,也不执行片段内容校验。
为什么两个文件共享同一片段编号?
BEP3 v1 将多文件内容视作连接后的字节流。文件边界不一定与片段边界重合。
种子里的 tracker 网址会被访问吗?
不会。本工具不连接 tracker、DHT 或 peer;下载的磁力文本也不包含 tracker 参数。