url地址参数加密函数

      最近在处理网站的图片,电话号码加密,今天在网上也看到了一个“url地址参数加密函数”,特收来供学习php的朋友们参考!

url地址参数加密

function keyED($txt,$encrypt_key)   
{       
    $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;
}

函数描述及例子
 

希望这个url参数加密函数对大家有所帮助

$key = 'key';

//生产加密参数地址
for ($i=0;$i<10;$i++)
{
    echo "<a href=./deurl.php?url=".encrypt_url("id=$i&sdf=asdf&time=".time(),$key).">文章$i</a><br>";
}

//获取参数地址
$get = geturl($_GET['url'],$key);
var_dump($get);

url地址rawurlencode And rawurldecode
http://www.onexin.net/tool/urlcode.php

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.