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

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

PHP实例Git开源网2020-10-23 20:14:33135A+A-

 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);


点击这里复制本文地址 以上内容由Git开源网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

Git开源网_git开源代码资源网_git开源博客 © All Rights Reserved.  
文章中出现的商标及图像版权属于其合法持有人,只供传递信息之用,非商务用途。本站所上传资源,只用于交流学习所用。本站资源收集于网络以及网友投稿,其版权归原创者所有,如有侵害到你的权益,或有不妥之处,请联系我们删除,敬请谅解。Email:admin#gitoscc.com(#更换成@)
Copyright © Git开源网 All rights reserved. 黑ICP备18006154号-1 由ZBlog驱动 | 本站已安全运行0

网站管理