<HTML>
<HEAD>
<title>迅雷(thunder)/快车(FlashGet)/旋风(qqdl)下载地址转换/还原工具—木子屋(mzwu.com)</title>
</HEAD>
<body>
<form name="form1" method="post" action="#" id="form1">
<p>
<h3>1.快车(FlashGet)下载地址转换/还原</h3>
<P></P>
转换前地址:<br>
<textarea name="txtNormal" rows="2" cols="20" id="txtNormal" style="height:60px;width:500px;"></textarea>
<br>
转换后地址:<br>
<textarea name="txtFlashGet" rows="2" cols="20" id="txtFlashGet" style="height:60px;width:500px;"></textarea>
<br>
<input type="button" name="txtNormalToFlashGet" value="普通地址->FlashGet地址" onclick="NormalToFlashGet();" id="txtNormalToFlashGet" />
<input type="button" name="txtFlashGetToNormal" value="FlashGet地址->普通地址" onclick="FlashGetToNormal();" id="txtFlashGetToNormal" />
<p>
<h3>2.迅雷(thunder)下载地址转换/还原</h3>
<P></P>
转换前地址:<br>
<textarea name="txtNormal2" rows="2" cols="20" id="txtNormal2" style="height:60px;width:500px;"></textarea>
<br>
转换后地址:<br>
<textarea name="txtThunder" rows="2" cols="20" id="txtThunder" style="height:60px;width:500px;"></textarea>
<br>
<input type="button" name="txtNormalToThunder" value="普通地址->迅雷thunder地址" onclick="NormalToThunder();" id="txtNormalToThunder" />
<input type="button" name="txtThunderToNormal" value="迅雷thunder地址->普通地址" onclick="ThunderToNormal();" id="txtThunderToNormal" />
<h3>3.旋风(qqdl)下载地址转换/还原</h3>
<P></P>
转换前地址:<br>
<textarea name="txtNormal3" rows="2" cols="20" id="txtNormal3" style="height:60px;width:500px;"></textarea>
<br>
转换后地址:<br>
<textarea name="txtQQdl" rows="2" cols="20" id="txtQQdl" style="height:60px;width:500px;"></textarea>
<br>
<input type="button" name="txtNormalToQQdl" value="普通地址->旋风qqdl地址" onclick="NormalToQQdl();" id="txtNormalToQQdl" />
<input type="button" name="txtQQdlToNormal" value="旋风qqdl地址->普通地址" onclick="QQdlToNormal();" id="txtQQdlToNormal" />
</form>
<script language="javascript">
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out;
len = str.length;
i = 0;
out = "";
while(i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c1 == -1);
if(c1 == -1)
break;
/* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while(i < len && c2 == -1);
if(c2 == -1)
break;
out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));
/* c3 */
do {
c3 = str.charCodeAt(i++) & 0xff;
if(c3 == 61)
return out;
c3 = base64DecodeChars[c3];
} while(i < len && c3 == -1);
if(c3 == -1)
break;
out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));
/* c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if(c4 == 61)
return out;
c4 = base64DecodeChars[c4];
} while(i < len && c4 == -1);
if(c4 == -1)
break;
out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
}
return out;
}
function NormalToFlashGet(){
form1.txtFlashGet.value = "Flashget://" + base64encode("[FLASHGET]" + form1.txtNormal.value + "[FLASHGET]");
}
function FlashGetToNormal(){
var temp = form1.txtFlashGet.value;
temp=base64decode(temp.indexOf("&")!=-1?temp.substring(11,temp.indexOf("&")):temp.substring(11));
form1.txtNormal.value = temp.substring(10,temp.length-10);
}
function NormalToThunder(){
form1.txtThunder.value = "thunder://" + base64encode("AA" + form1.txtNormal2.value + "ZZ");
}
function ThunderToNormal(){
var temp = base64decode((form1.txtThunder.value).substring(10));
form1.txtNormal2.value = temp.substring(2,temp.length-2);
}
function NormalToQQdl(){
form1.txtQQdl.value = "qqdl://" + base64encode(form1.txtNormal3.value);
}
function QQdlToNormal(){
form1.txtNormal3.value = base64decode((form1.txtQQdl.value).substring(7));
}
</script>
</body>
</HTML>迅雷(thunder)/快车(FlashGet)/旋风(qqdl)下载地址转换/还原工具
迅雷(thunder)/快车(FlashGet)/旋风(qqdl)的下载地址都是由普通的地址经过base64编码而来,但具体过程稍微有点不同:迅雷是在普通地址前后分别加了"AA"和"ZZ"之后进行base64编码,然后在最前方加入"thunder://"而成,最终如"thunder://QUFodHRwOi8vd3d3Lm16d3UuY29tL2RlZmF1bHQuYXNwWlo=";而快车则是在普通地址前后都加"[flashget]"之后进行base64编码,然后在最前方加入"flashget://"最后方加入"&id数字&数字"而成,最终如"Flashget://W0ZMQVNIR0VUXWh0dHA6Ly93d3cubXp3dS5jb20vZGVmYXVsdC5hc3BbRkxBU0hHRVRd& 566&1204532909";旋风最为简单,直接将普通地址使用base64编码,并在最前方加入"qqdl://"而成,最终如"qqdl://aHR0cDovL3d3dy5tend1LmNvbS9kZWZhdWx0LmFzcA=="。知道了原理,要将普通地址base64编码进行转换或将转换后的地址还原为普通地址就不难了,下边是一个迅雷(thunder)/快车(FlashGet)/旋风(qqdl)下载地址转换/还原工具:
评论(0)
暂无评论。