function decode($url,$sertim){
$len = strlen($url); $decurl = ""; $asc_arr1 = array(); $asc_arr2 = array(); $key = $sertim % 26;
$key = $key ? $key : 1; //第1次
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;
} //
for ($i = 0; $i < $len; $i++) {
$word = substr($url,$i,1); if (preg_match("/[A-Za-z0-9]/",$word)) {
$pos = $asc_arr2[ord(substr($url,$i,1))] - $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);
把这个解密函数转成ASP的
function decode(url,sertim)
dim asc_arr1(200),asc_arr2(200)
str_len=len(url)
decurl=""
key=sertim mod 26
if key=0 then key=1
for i=0 to 61
if i<10 then
asc_arr1(i)=i+48
asc_arr2(i+48)=i
elseif i<36 then
asc_arr1(i)=i+55
asc_arr2(i+55)=i
else
asc_arr1(i)=i+61
asc_arr2(i+61)=i
end if
next
for i=0 to str_len-1
word=mid(url,i+1,1)
wasc=asc(word)
if (wasc>47 and wasc <58) or (wasc >64 and wasc<91) or (wasc>96 and wasc<123) then
pos=asc_arr2(wasc)-key
if pos<0 then pos=pos+62
word=chr(asc_arr1(pos))
end if
decurl=decurl & word
next
decode=decurl
end function
str = "o00w://333.osq.z0h0z.nv2.ju/q5/4p14phuzopN1hun/44zn977D7A9F8G-7A.twA"
sertim = 1289225685
msgbox decode(str,sertim)VBS测试通过