php自定义函数: 加密下载地址

admin 2019-06-13 837 阅读 0评论

下面是可以将我们的url地址加密.确保我们提交的数据安全

以下是代码片段:

<?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++)

{

    $url=encrypt_url('id=$i&sdf=asdf',$key);

    echo "<a href=?url=".$url.">php技术文章$i</a><br>";

}

//获取参数地址

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

var_dump($get);


喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 837人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表