迅雷链接加解密
把普通下载地址包成 thunder:// 链接,或把迅雷链接还原成真实地址,一行一条批量处理。
一行一个下载地址,每行都在前后套上 AA 与 ZZ 再整体做 Base64
| 行 | 输入 | 结果 | 复制 |
|---|---|---|---|
| 1 | https://mirror.example.com/ubuntu-24.04-desktop-amd64.iso | thunder://QUFodHRwczovL21pcnJvci5leGFtcGxlLmNvbS91YnVudHUtMjQuMDQtZGVza3RvcC1hbWQ2NC5pc29aWg== |
失败的行会写明原因,其他行照常转换,不会被一行错误带停。
使用说明
迅雷链接的结构很简单,就是三层:最里面是普通下载地址,往外包上固定的两个字母 AA 和 ZZ 作为头尾标记,再整体做一次标准 Base64(不是网址安全变体,所以可能出现加号和斜杠),最后在前面加上 thunder:// 前缀。加密的每一步都只有一种结果,所以同一串地址每次算出来完全一样,不存在随机成分。
解密是把这套手续倒着走一遍:先去掉 thunder:// 前缀,再解开 Base64,最后检查开头的两个字母是不是 AA、结尾的两个字母是不是 ZZ,都符合才把中间那段当作真实地址返回。这一步校验是必须的,因为随便一段 Base64 也都能解开,不校验的话工具会把无关内容当成下载地址给出来,用户拿去用只会一头雾水。
最容易被忽略的细节是 Base64 结尾的补位等号。Base64 每 3 个字节编成 4 个字符,字节数凑不满 3 的倍数时最后会剩 1 到 2 个字节,编码结果末尾就补上一到两个等号凑足长度。迅雷生成的链接通常把这些等号省掉,于是长度可能是 4 的倍数以外的数。解码前必须按长度补回到 4 的倍数,否则解出来的字节会错位,看着像乱码。这一页在解码时自动补齐,两种写法都能粘进来。
要分清这个工具管什么、不管什么。除了 thunder 链接,迅雷还支持磁力链接(magnet 开头)和电驴链接(ed2k 开头),这两种是独立的标准格式,地址本身就是明文参数,不套 AA 与 ZZ 这层包装,拿到这一页来转必然报错。另外,地址的 Base64 只是「换个写法」,没有加密强度可言——任何人拿到链接都能解开看到原始地址,所以别把它的封装当成隐私保护。
整段计算都在浏览器本机完成,不发网络请求,解出来的地址也不会被记录下来。想验证解出来的地址对不对,直接把结果粘到浏览器地址栏看能不能打开就行;地址本身是普通的 HTTP 或 FTP 链接,和迅雷客户端没有绑定关系。至于这条地址指向的资源是否可用、是否有授权,得由使用者自行判断,本工具只负责格式转换。
常见问题
为什么有的迅雷链接末尾没有等号?
那是 Base64 的补位等号被省掉了。Base64 把字节按每 3 个一组编成 4 个字符,凑不满时用等号补齐,而迅雷自己生成的链接基本都不写这几个等号。解码前先按长度补到 4 的倍数就能正常解开,本工具在解码这一步自动补齐,所以两种写法都能粘进来。想单独看这层编码,用 Base64 编解码那一页。
相关:Base64 编解码
解开后提示「不是有效的迅雷链接」是怎么回事?
迅雷链接的外层固定是以 AA 开头、ZZ 结尾的地址再整体 Base64。如果解开之后不是这个样子,说明这段内容不是迅雷链接,可能只是普通 Base64、可能是别的软件自己加了一层编码,也可能是复制时少了一段。这种情况工具会明确报错,而不是把一段乱码当成地址给出来。
磁力链接和 ed2k 链接能用这一页转吗?
不能。磁力链接(magnet 开头)和电驴链接(ed2k 开头)是完全不同的格式,本身没有再加一层 AA 与 ZZ 包装,也不需要通过 Base64 藏地址。这一页只处理迅雷自己的 thunder 链接,遇到这两种会按格式不符报错。
链接会被发送到服务器吗?
不会。加解密全程在浏览器本机完成,编解码用的都是浏览器自带的 Base64 能力,页面不发任何网络请求,断网也能用。粘进来的地址不会被记录,也不会留在页面以外的地方。
为什么加密出来的结果和我手里那条不一样?
同一串字节的 Base64 结果只有一种,所以结果对不上,多半是里面的地址本身不同:结尾多一个斜杠、域名大小写不同、空格没去掉,都会改变 Base64。另外一种可能是对方对地址先做了百分号编码再套迅雷链接,两者内容并不等价,需要先解回原地址再比较。
一次能处理多少条?
一行一条,数量没有硬性上限,几万行也能一次算完,因为整段处理是纯本机运算、不涉及网络。计算量大致和字符数成正比,把链接拼成一大段时留意一下浏览器标签页的内存即可。
中间有空白和换行会出错吗?
不会。每一行都会先去掉首尾空白,空行单独计数、不当成出错,所以从聊天记录或网页里连排版一起复制进来也能用。Base64 部分内部夹了换行也能解开,因为解码前会把空白一并去掉。
成功和失败的行怎么区分?
结果表里每一行都会带行号和状态:成功的显示转换结果并提供复制按钮,失败的显示具体原因,例如没有以 thunder:// 开头、Base64 不合法、或者解开后缺了 AA 与 ZZ 标记。「复制全部结果」只包含成功的行,失败的行不会被拼进去。