PHP加解密迅雷,flashget快车,QQ旋风地址
所属分类:PHP工具与代码
  转载自http://www.pczpg.com/html/bianchengkaifa/php/20091128/24000

迅雷下载方式越来越流行,原因不作研究,本文只研究迅雷下载地址格式,它的格式见下面:

thunder://QUFodHRwOi8vYmxvZy44MTA4MjIuY29tWlo=

先是以 thunder://开头,接着是一串没有规律的不定长字符串,很多朋友对此不解。

经本人研究,其实这是应用了base64编码方法,只要用base64进行编码和解码,迅雷的真实下载地址就会大白于天下。


PHP先天内置有base64函数库,我们可以用PHP进行迅雷下载地址的加密和解密。用上面的下载地址做例子:

把前缀thunder://去掉后直接base64解码,echo base64_decode("QUFodHRwOi8vaGkuYmFpZHUuY29tL2hhY2tsenRaWg=="),输出结果为:AAhttp://hi.baidu.com/hacklztZZ,再把结果首尾的AA和ZZ去掉,得出的就是真实的下载地址了。

[code]<?php
$s= 'thunder://QUFodHRwOi8vZG93bjIuNTF5bG1mLmNuL0dIT1NUWFBTUDN5dWxpbm11ZmVuZ3podWFuZ2ppYmFuWU4xMy4wLmlzb1pa'; $url = preg_replace("/^AA(.*)ZZ$/","\$1",base64_decode(preg_replace("/^thunder:\/\/(.*)\/?$/i","\$1",$s))); $xl = 'thunder://'.base64_encode('AA'.$url.'ZZ').'/'; echo("$url\n$xl");
?>[/code]

以上是解码方法,很容易就推出编码方法,以下载地址http://hi.baidu.com/hacklzt为例,把AA和ZZ分别加到首尾,再对得到的结果base64_encode,把结果附上thunder://前缀就得到最后的编码结果了。

经研究,FlashGet和QQ旋风下载地址也是使用相同的方法,不同的是前缀或附加的东西不同。

Flashget的编码方法为:"flashget://" . base64_encode("[FLASHGET]加载地址[FLASHGET]")

QQ旋风下载的编码方法为:"qqdl://" . base64_encode("加载地址")

解码方法自己可以很容易推出,不作详述。