用php改写百度mp3地址的加密方式
百度mp3地址是加密过的,具体加密方式大家自己看吧.解码函数如下://copyright http://www.k686.com
//author tuzwu58@gmail.com
function decode(url){
var len = url.length;
var decurl = "";
var asc_arr1 = [], asc_arr2 = [];
var key = sertim % 26;
key = key ? key : 1;
function init(head, bottom, middle){
for (var i = head; i <= bottom; i++) {
asc_arr1 = i + middle;
asc_arr2 = i;
}
}
init(0, 9, 48);
init(10, 35, 55);//http://www.k686.com
init(36, 61, 61);
for (var i = 0; i < len; i++) {
var word = url.charAt(i);
if (//.test(word)) {
var pos = asc_arr2 - key;
if (pos < 0)
pos += 62;
word = String.fromCharCode(asc_arr1);
}
decurl += word;
}
return decurl;
}
传入的字符串格式形如:
str = "o00w://333.osq.z0h0z.nv2.ju/q5/4p14phuzopN1hun/44zn977D7A9F8G-7A.twA";
var sertim = 1289225685;
两个变量需要带入到上面的函数,这样才能解析为一个标准的url地址.
下面是php改写后的:
//copyright http://www.k686.com
//author tuzwu58@gmail.com
function decode($url,$sertim){
$len = strlen($url);
$decurl = "";
$asc_arr1 = array();
$asc_arr2 = array();
$key = $sertim % 26;
$key = $key ? $key : 1;
//第1次 http://www.k686.com
for ($i = 0; $i <= 9; $i++) {
$asc_arr1[$i] = $i + 48;
$asc_arr2[$i + 48] = $i;
}
//第2次
for ($i = 10; $i <= 35; $i++) {
$asc_arr1[$i] = $i + 55;
$asc_arr2[$i + 55] = $i;
}
//第3次
for ($i = 36; $i <= 61; $i++) {
$asc_arr1[$i] = $i + 61;
$asc_arr2[$i + 61] = $i;
}
//end http://www.k686.com
for ($i = 0; $i < $len; $i++) {
$word = substr($url,$i,1);
if (preg_match("//",$word)) {
$pos = $asc_arr2 - $key;
if ($pos < 0){
$pos += 62;
}
$word = chr($asc_arr1[$pos]);
}
$decurl .= $word;
}
return $decurl;
}
$str = 'o00w://333.osq.z0h0z.nv2.ju/q5/4p14phuzopN1hun/44zn977D7A9F8G-7A.twA';
$sertim = 1289225685;
echo decode($str,$sertim);
算是用php改写了js函数,功能是一模一样的.传入的两个参数都可以在百度mp3页面找得到的.
页:
[1]