2023年11月29日发(作者:)CODE#NoTrayIcon
Chars=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/
Gui,Add,Edit,w250 vurl
Gui,Add,Button,w120,Encode/&Decode
Gui,Add,Button,w120 xp+130,&Cancel
Gui,Show,,迅雷地址转换
Return
ButtonEncode/Decode:
GuiControlGet,url
StringGetPos,pos, url,thunder://
IFEQUAL,pos,-1
{
StringGetPos,pos, url,.
IFEQUAL,pos,-1,return
GuiControl,,url, % "Thunder://" Base64("AA" url "ZZ")
}else{
StringTrimLeft,url,url,pos+10
RegExMatch(InvBase64(url),"(?<=^AA).+(?=ZZ)",url)
GuiControl,,url,%url%
}
Clipboard:=url
return
guiClose:
guiEscape:
ButtonCancel:
ExitApp
;forum /forum/?p=35427
Base64(string) {
Loop Parse,string
{
If Mod(A_Index,3) = 1
buffer := Asc(A_LoopField) << 16
Else If Mod(A_Index,3) = 2
buffer += Asc(A_LoopField) << 8
Else {
buffer += Asc(A_LoopField)
out := out . Code(buffer>>18) . Code(buffer>>12) . Code(buffer>>6) . Code(buffer)
}
}
If Mod(StrLen(string),3) = 0
Return out
If Mod(StrLen(string),3) = 1
Return out . Code(buffer>>18) . Code(buffer>>12) "=="
Return out . Code(buffer>>18) . Code(buffer>>12) . Code(buffer>>6) "="
}
InvBase64(code) {
StringReplace code,code,=,,All
Loop Parse,code
{
If Mod(A_Index,4) = 1
buffer := DeCode(A_LoopField) << 18
Else If Mod(A_Index,4) = 2
buffer += DeCode(A_LoopField) << 12
Else If Mod(A_Index,4) = 3
buffer += DeCode(A_LoopField) << 6
Else {
buffer += DeCode(A_LoopField)
out := out . Chr(buffer>>16) . Chr(255 & buffer>>8) . Chr(255 & buffer)
}
}
If Mod(StrLen(code),4) = 0
Return out
If Mod(StrLen(code),4) = 2
Return out . Chr(buffer>>16)
Return out . Chr(buffer>>16) . Chr(255 & buffer>>8)
}
Code(i) { ; <== Chars[i & 63],0-base index
Global Chars
StringMid i,Chars,(i&63)+1,1
Return i
}
DeCode(c) { ; c = a char in Chars ==> position [0,63]
Global Chars
Return InStr(Chars,c,1) - 1
}
迅雷加密的下载链接地址,使用了。BASE64加密算法。BASE64算法是一个可逆的算法,所以可以用来进行简单的加密!
我们在下载一些网络资源的时候,常常会见到类似于如下的链接地址:
thunder://QUFodHRwOi8vaW1hZ2UyLnNpbmEuY29tLmNuL2Jsb2cvdG1wbC92My9pbWFnZXMvbG9nby5naWZaWg==
在Windows中如果安装了迅雷,就可以正确解析这样的地址,其实这样一串字符就是用BASE64算法经加密后得到的,我用“/blog/tmpl/v3/images/”作为例说明一下整个加密和解密的过程。
加密:
在完整的下载链接前冠以“AA”,后缀以“ZZ”:
AA/blog/tmpl/v3/images/
用BASE64算法进行加密,得到:
QUFodHRwOi8vaW1hZ2UyLnNpbmEuY29tLmNuL2Jsb2cvdG1wbC92My9
pbWFnZXMvbG9nby5naWZaWg==
在前面加上迅雷自己的协议头:
thunder://QUFodHRwOi8vaW1hZ2UyLnNpbmEuY29tLmNuL2Jsb2cvdG1wbC92My9pbWFnZXMvbG9nby5naWZaWg==
大功告成!
解密:
把以上过程逆向一下就可以了:
去掉迅雷协议头;用BASE64算法解密;去掉“AA”、“ZZ”!
迅雷:AA下载地址ZZ 经BASE64加密
超级旋风:下载地址 经BASE64加密
网际快车:[FLASHGET]下载地址[FLASHGET] 经BASE64加密
在网上看到的关于迅雷、快车、超级旋风下载地址加密算法介绍,都是通过base64算法加密,只不过在加密前后做了一些特别的标志。
Base64编码是一种加密算法,Email的原始信息就是由Base64编码构成的。
1、迅雷专用链接编码
在原地址前面加"AA",后面加"ZZ"(不包括引号),地址变为
AA/install/
此地址base64编码为
QUFodHRwOi8vaW0uYmFpZHUuY29tL2luc3RhbGwvQmFpZHVIaS5leGVaWg==
迅雷专链即在上地址前加thunder://,即
Thunder://QUFodHRwOi8vaW0uYmFpZHUuY29tL2luc3RhbGwvQmFpZHVIaS5leGVaWg==
2、快车专用链接编码
在原地址前后都加上"[FLASHGET]"(不包括引号),地址变为
[FLASHGET]/install/[FLASHGET]
此地址base64编码为
W0ZMQVNIR0VUXWh0dHA6Ly9pbS5iYWlkdS5jb20vaW5zdGFsbC9CYWlkdUhpLmV4
ZVtGTEFTSEdFVF0=&yinbing1986
快车专链即在上地址前加flashget://,注意后面还要加上"&符号",符号怎么得出不清楚,在最后后面加的是好好爱的个人信息,至今未有人报告转换错误,即
Flashget://W0ZMQVNIR0VUXWh0dHA6Ly9pbS5iYWlkdS5jb20vaW5zdGFsbC9CYWlkdUhpL
mV4ZVtGTEFTSEdFVF0=&yinbing1986
3、旋风专用链接编码
旋风相对就简单多了,将原地址直接base64编码为
aHR0cDovL2ltLmJhaWR1LmNvbS9pbnN0YWxsL0JhaWR1SGkuZXhl
旋风专链即在上地址前加qqdl://,即
qqdl://aHR0cDovL2ltLmJhaWR1LmNvbS9pbnN0YWxsL0JhaWR1SGkuZXhl
附Javascript的加密函数:
发布评论