http://u.115.com/file/t01bfa26e7类似这样. 
t01bfa26e7 是这个文件的id

解决方案 »

  1.   

    随机的rand 数吧,不然怎么算呢。
      

  2.   

    可能自己写的加密算法 也能可能是常见的md5什么
    要是对这个有兴趣 google一下url加密 有很多的例子
    用的是编码也不一定 比如 urlencode() 
    简单的如 base64_en()加密<?php
    function keyED($txt,$encrypt_key) '定义一个keyED
    {       
        $encrypt_key =    md5($encrypt_key);
        $ctr=0;       
        $tmp = "";       
        for($i=0;$i<strlen($txt);$i++)       
        {           
            if ($ctr==strlen($encrypt_key))
            $ctr=0;           
            $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
            $ctr++;       
        }       
        return $tmp;   
    }    
    function encrypt($txt,$key)   
    {
        $encrypt_key = md5(mt_rand(0,100));
        $ctr=0;       
        $tmp = "";      
         for ($i=0;$i<strlen($txt);$i++)       
         {
            if ($ctr==strlen($encrypt_key))
                $ctr=0;           
            $tmp.=substr($encrypt_key,$ctr,1) . (substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
            $ctr++;       
         }       
         return keyED($tmp,$key);
    }    
    function decrypt($txt,$key)
    {       
        $txt = keyED($txt,$key);       
        $tmp = "";       
        for($i=0;$i<strlen($txt);$i++)       
        {           
            $md5 = substr($txt,$i,1);
            $i++;           
            $tmp.= (substr($txt,$i,1) ^ $md5);       
        }       
        return $tmp;
    }
    function encrypt_url($url,$key)
    {
        return rawurlencode(base64_encode(encrypt($url,$key)));
    }
    function decrypt_url($url,$key)
    {
        return decrypt(base64_decode(rawurldecode($url)),$key);
    }
    function geturl($str,$key)
    {
        $str = decrypt_url($str,$key);
        $url_array = explode('&',$str);
        if (is_array($url_array))
        {
            foreach ($url_array as $var)
            {
                $var_array = explode("=",$var);
                $vars[$var_array[0]]=$var_array[1];
            }
        }
        return $vars;
    }
    ?> 
     //下面是函数调用的实例//以下是代码片段:
     <?
    $key = 'key';//生产加密参数地址
    for ($i=0;$i<10;$i++)
    {
        echo "<a href=./deurl.php?url=".encrypt_url("id=$i&sdf=asdf& time=".time(),$key).">php技术文章$i</a><br>";
    }//获取参数地址
    $get = geturl($_GET['url'],$key);
    var_dump($get);?>