如下:
http://wenku.baidu.com/view/cf02c5e9b8f67c1cfad6b8ee.html
http://hiphotos.baidu.com/baidu/pic/item/7f3e67093d17a49a3bc763e4.jpg
http://wenku.baidu.com/view/004d168884868762caaed531.html上面的
 
cf02c5e9b8f67c1cfad6b8e
7f3e67093d17a49a3bc763e4
004d168884868762caaed531请问这样的网址是怎么生成的?是自己写函数吗?有什么好的思路或者代码介绍一下?
谢谢!

解决方案 »

  1.   

    直接md5再截取好像不可行,因为我需要根据这个值再反解成id读取数据库,但md5不可逆……
      

  2.   

    想自己写个可逆的,只是对php不熟悉,希望各位指导一下!
      

  3.   


    //目前还不能实现未加密字符串用于解密算法的检测,也不能限制长度,你可以运用算法将长度限定下,这只是个大致的思路
    function code($s, $t = 1) {
        $s    .= '';
        if($t){
            $len    = strlen($s);
            $code    = '';
            for($i = 0; $i < $len; $i++){
                $code    .= str_pad(ord($s[$i]), 3, '1', STR_PAD_RIGHT).strlen(ord($s[$i]));
            }
            $arr    = str_split($code, 4);
            $code    = '';
            foreach($arr as $val){
                $code    .= str_pad(dechex($val), 4, '1', STR_PAD_RIGHT).strlen(dechex($val));
            }
            return $code;
        }else{
            $arr    = str_split($s, 5);
            $code    = '';
            foreach($arr as $val){
                $code    .= hexdec(substr($val, 0, $val[strlen($val) - 1]));
            }
            $arr    = str_split($code, 4);
            $code    = '';
            foreach($arr as $val){
                $code    .= chr(substr($val, 0, $val[strlen($val) - 1]));
            }
            return $code;
        }
    }$s = rand(0, 9999);
    echo code($s, 0);exit;
    echo '随机数:', $s, '<br>加密数:', code($s, 1), '<br>解密后:', code(code($s, 1), 0);
      

  4.   


    用 base64_encode加密 用base64_decode解密 好了