种子转 Magnet 链接
网络所有处理都在浏览器本地完成,数据不上传服务器
把 `.torrent` 文件变成一条 magnet 链接 —— 拖进来就行,文件不会被上传。 magnet 的好处是不再依赖种子文件本身:它把资源的身份(infohash)直接写在链接里,谁拿到都能去 DHT 网络里找。原种子删了、丢了、被论坛清了,链接照样能用。 这里做的事比看上去要小心一点。infohash 不是整份文件的哈希,而是种子文件里 `info` 字典那一段字节的 SHA-1 —— 而且必须是原始的那段字节。把解析出来的结构重新编码一遍再哈希,会得到一个长度正确、格式合法、就是和全网都对不上的值,并且没有任何迹象表明它错了。⚠️ 有些在线转换工具给出的 infohash 在客户端里怎么都连不上,八成就是这个原因。 除链接之外,页面还会把种子里的信息一并列出来:文件名、总大小、分片长度、tracker 列表、创建工具与时间、是否私有。把这些粘进客户端之前,人通常正想知道这些。 同时支持两代格式:v1 的 infohash 是 SHA-1(magnet 里写作 `btih`),v2 换成了 SHA-256(写作 `btmh`)。hybrid 种子两者都有,那就两个都给出 —— 老客户端认 v1,新客户端认 v2。
功能
- 生成可直接粘贴的 magnet 链接,含 dn、xl 与全部 tracker
- 用 info 段的原始字节算 infohash,与客户端认的完全一致
- 同时支持 v1(SHA-1 / btih)与 v2(SHA-256 / btmh)
- 列出文件名、总大小、文件数、分片长度与分片数
- 展开 announce-list 里的全部备用 tracker
- 标出私有种子 —— 它不参与 DHT 与 PEX
- 文件不上传,断网也能用
使用方法
- 把 .torrent 文件拖进虚线框
- 链接立刻出现在顶部,点右侧按钮复制
- 下面的表里能看到这个种子的全部细节
- 粘进任意 BitTorrent 客户端即可开始
常见问题
- 为什么这里算出的 infohash 和别处给的不一样?
- 先怀疑对方。infohash 的定义很死:`info` 字典那一段原始字节的 SHA-1。麻烦在于 bencode 允许多种等价写法 —— 字典键的顺序、整数的表示 —— 一旦某个工具先把种子解析成对象、再重新编码一遍去哈希,它算出来的就是另一段字节。那个值看起来完全正常(40 位十六进制),但 DHT 上不存在这个哈希,客户端会一直停在「正在获取元数据」。本工具始终取原始字节,不重新编码。 当然也有另一种可能:你手上的 `.torrent` 和那个 infohash 本来就来自不同的种子。
- magnet 链接里那一串参数都是什么?
- `xt` 是身份(`urn:btih:` 后面 40 位十六进制就是前 v2 时代的 infohash)。`dn` 是显示名 —— 只是给客户端和用户看的一个标签,不参与身份计算,改它不影响能不能连上。`xl` 是资源的精确字节数,客户端可以据此预留空间。`tr` 是 tracker 地址,一条链接可以带很多个,用同一个 `tr` 参数重复出现。去掉 `tr` 链接依然能用,因为客户端还能靠 DHT 找到节点。
- 「私有种子」是什么意思?
- 私有种子(`private: 1`)的发布者要求只能通过种子内列出的 tracker 交换节点,不允许走 DHT 和 PEX(Peer Exchange)。这么做通常是为了统计做种率、按流量分配权限 —— 很多 PT 站就是这么运作的。对本工具而言,它只是多显示一行提示;但如果你在一个私有种子上手动删掉了 `tr` 参数,那它大概率就真的连不上任何人了。
相关工具
文件头识别
网络从开头几个字节判断文件的真实类型。收录近 60 种常见格式,支持带偏移的签名,也能反查某个格式的 magic bytes。
哈希计算
编码算出文本的 MD5、SHA-1、SHA-256 或 SHA-512 摘要,也可算老系统用的 MD4 与 MD2,中文按 UTF-8 字节计算。全部在本地完成。
URL 解析
网络在线 URL 解析:拆出协议、主机、端口、路径、查询参数与锚点,参数逐个解码并与原始值对照,缺协议自动补 https://。全部在浏览器本地完成。
UA 解析
网络在线 User-Agent 解析:识别浏览器、版本、操作系统、设备类型与渲染引擎,并列出命中的匹配规则。结果基于模式匹配,仅供参考。全部在浏览器本地完成。
HTTP 状态码
网络HTTP 状态码查询与速查:输入编号查含义、1xx 到 5xx 分类、常见场景与排查提示,也能用关键词反查编号。全部在浏览器本地完成。
MIME 类型
网络MIME 类型与扩展名双向查询:输入 js 得到 text/javascript,输入 image/svg+xml 得到默认扩展名。附数据来源与覆盖范围,全部本地完成。