PHP加密/解密迅雷、快车和QQ旋风专用链接及中文乱码处理
(1)解密方法
function decrypt($url_origin = null){
$url = trim($url_origin);
if ($url == null) return null;
$count = preg_match("/(\w+):\/\//i", $url, $matches);
if($count == 0 || $count == false){
return $url_origin;
}else{
$type = strtolower($matches[1]);
}
$count = preg_match("/:\/\/([a-zA-Z0-9+\/]+={0,2})/i", $url, $matches);
if($count == 0 || $count == false){
return $url_origin;
}else{
$url = $matches[1];
}
switch ($type){
case "thunder":
$url = base64_decode($url);
$count = preg_match("/^AA(.+)ZZ$/i", $url, $matches);
if($count == 0 || $count == false){
return $url_origin;
}else{
$url = $matches[1];
}
break;
case "flashget":
$url = base64_decode($url);
$count = preg_match("/\[FLASHGET\](.+)\[FLASHGET\]/i", $url, $matches);
if($count == 0 || $count == false){
return $url_origin;
}else{
$url = $matches[1];
}
break;
case "qqdl":
$url = base64_decode($url);
break;
default:
return $url_origin;
}
return $url;
}
用法实例:
$url = 'thunder://QUFmdHA6Ly9kczpkc0BkNy4ydHUuY2M6NTAwNTAvW9G4wNfPwtTYd3d3LnhpYW1wNC5jb21dx+BZ1r4wMS4xMjgwuN/H5c60yb689bDmLm1wNFpa';
$deurl = decrypt($url);
$deurl = iconv("GBK","UTF-8",$deurl);//若中文有乱码需要这行代码转编码
(2)解密方法
function encrypt($url = null, $type = "thunder"){
$types = array("thunder", "flashget", "qqdl");
$type = strtolower($type);
$url = trim($url);
if ($url == null) return null;
if (false == array_search($type, $types)) $type = "thunder";
switch ($type){
case "thunder":
$url = "thunder://" . base64_encode("AA".$url."ZZ");
break;
case "flashget":
$url = "flashget://" . base64_encode("[FLASHGET]".$url."[FLASHGET]") . "&bao";
break;
case "qqdl":
$url = "qqdl://" . base64_encode($url);
break;
}
return $url;
}