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的

解决方案 »

  1.   


    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测试通过