php开发中的url地址传输加密解密函数

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;  

}

// 加密url参数

function encrypt_url($url,$key)  

{  

    return rawurlencode(base64_encode(encrypt($url,$key)));  

}

// 解密url参数

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=./url.php?url=".encrypt_url("id=$i&act=123456&time=".time(),$key).">php技术文章$i</a><br>";

}



//获取参数地址

$get = geturl($_GET['url'],$key);

var_dump($get);

 

你可能感兴趣的:(加密解密)