×

phpurl参数加密

phpurl参数加密(php加密方法)

admin admin 发表于2023-03-29 16:20:10 浏览46 评论0

抢沙发发表评论

本文目录一览:

php 怎么加密url啊,不特别长的

/处理为URL安全模式

function reflowURLSafeBase64($str){

$str=str_replace("/","_",$str);

$str=str_replace("+","-",$str);

return $str;

}

//反解

function reflowNormalBase64($str){

$str=str_replace("_","/",$str);

$str=str_replace("-","+",$str);

return $str;

}

希望可以采纳,谢谢。

分享一个php加密方法,这个方法还比较实用

我们在开发过程中,有的时候GET传值,字符串太长,我们可以用这个方法,在传值之前先调用函数lock_url(加密字符串),加密以后在传递,GET接受以后用函数unlock_url(待解密字符串)进行解密。 -phpurl参数加密

如果大家有更好更简单的方法,发评论区我们一起讨论学习!

function lock_url($txt)

{

$key = ']!L]_w{O}zEIs!.f(T[|ZGQaxS":?#`v%EburotLZi"KdKs@QivlJ[PjWw`.wcT'; //key

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$nh = rand(0,64);

$ch = $chars[$nh];

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = base64_encode($txt);

$tmp = '';

$i=0;$j=0;$k = 0;

for ($i=0; $istrlen($txt); p="" {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = ($nh+strpos($chars,$txt[$i])+ord($mdKey[$k++]))%64;

$tmp .= $chars[$j];

}

return urlencode($ch.$tmp);

}

//解密函数

function unlock_url($txt)

{

$key = ']!L]_w{O}zEIs!.f(T[|ZGQaxS":?#`v%EburotLZi"KdKs@QivlJ[PjWw`.wcT';//key

$txt = urldecode($txt);

$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-=+";

$ch = $txt[0];

$nh = strpos($chars,$ch);

$mdKey = md5($key.$ch);

$mdKey = substr($mdKey,$nh%8, $nh%8+7);

$txt = substr($txt,1);

$tmp = '';

$i=0;$j=0; $k = 0;

for ($i=0; $istrlen($txt); p="" {

$k = $k == strlen($mdKey) ? 0 : $k;

$j = strpos($chars,$txt[$i])-$nh - ord($mdKey[$k++]);

while ($j0) $j+=64;

$tmp .= $chars[$j];

}

return base64_decode($tmp);

}

thinkphp怎么加密url参数

/**

 * 系统加密方法

 * @param string $data 要加密的字符串

 * @param string $key  加密钥

 * @param int $expire  过期时间 单位 秒

 * return string

 * @author 麦当苗儿 zuojiazi@vip.qq.com

 */

function think_encrypt($data, $key = '', $expire = 0) {

    $key  = md5(empty($key) ? C('DATA_AUTH_KEY') : $key);

    $data = base64_encode($data);

    $x    = 0;

    $len  = strlen($data);

    $l    = strlen($key);

    $char = '';

    for ($i = 0; $i  $len; $i++) {

        if ($x == $l) $x = 0;

        $char .= substr($key, $x, 1);

        $x++;

    }

    $str = sprintf('%010d', $expire ? $expire + time():0);

    for ($i = 0; $i  $len; $i++) {

        $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i, 1)))%256);

    }

    return str_replace(array('+','/','='),array('-','_',''),base64_encode($str));

}

/**

 * 系统解方法

 * @param  string $data 要解的字符串 (必须是think_encrypt方法加密的字符串)

 * @param  string $key  加密密钥

 * return string

 * @author 当苗儿 zuojiazi@vip.qq.com

 */

function think_decrypt($data, $key = ''){

    $key    = md5(empty($key) ? C('DATA_AUTH_KEY') : $key);

    $data   = str_replace(array('-','_'),array('+','/'),$data);

    $mod4   = strlen($data) % 4;

    if ($mod4) {

       $data .= substr('====', $mod4);

    }

    $data   = base64_decode($data);

    $expire = substr($data,0,10);

    $data   = substr($data,10);

    if($expire  0  $expire  time()) {

        return '';

    }

    $x      = 0;

    $len    = strlen($data);

    $l      = strlen($key);

    $char   = $str = '';

    for ($i = 0; $i  $len; $i++) {

        if ($x == $l) $x = 0;

        $char .= substr($key, $x, 1);

        $x++;

    }

    for ($i = 0; $i  $len; $i++) {

        if (ord(substr($data, $i, 1))ord(substr($char, $i, 1))) {

            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));

        }else{

            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));

        }

    }

    return base64_decode($str);

}

php url参数加密

用这个加密:base64_encode ( string $data )

?php

$str = 'This is an encoded string';

echo base64_encode($str);

?

用这个解密:base64_decode ( string $data [, bool $strict= false ] )

?php

$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';

echo base64_decode($str);

?

URL内 参数加密解密

javascript对URL中的参数进行简单加密处理

javascript的api本来就支持Base64,因此我们可以很方便的来进行编码和解码。

var encodeData = window.btoa("name=xiaomingage=10")//编码

var decodeData = window.atob(encodeData)//解码。

下面来个具体的例子来说明如何对url中参数进行转码,并取得解码后的参数

假如要跳转的url = "stu_info.html?name=xiaomingage=10"

转码:url = "stu_info.html?"+window.btoa("name=xiaomingage=10");

跳转:window.open(url)或者window.locaton.href = url;

解码:解码时我们首先要从url中获得参数列表,

我们可以通过var paramsString = window.location.search来获取url中?号开始的内容(url的查询部分)即"?name=xiaomingage=10";

然后去掉?号 paramsString  = paramsString.substring(1) //"name=xiaomingage=10"

去掉 paramsString  = paramsString.split("");//["name=xiaoming","age=10"]

需要指出的是 window.btoa这中编码方式不能直接作用于Unicode字符串。只能将ascci字符串或二进制数据转换成Base64编码过的字符串。如果要对Unicode字符进行编码可以将做如下转换。-phpurl参数加密

var encodeData = window.btoa(window.encodeURIComponent("name=小明age=10"))//编码

var decodeData = window.decodeURIComponent(window.atob(encodeData))//解码。

获取url参数

//获取url参数

function getQueryString(name) { 

var reg = new RegExp("(^|)" + name + "=([^]*)(|$)", "i");

var params = window.location.search.substr(1);

params = window.decodeURIComponent(window.atob(params));

var r = params.match(reg); 

if (r != null) {

return decodeURI(r[2]);

}

return null;

}

php url加密

传的时候先用自己的函数给参数加密不行吗?模板上还要调用七七八八的方法不好吧。

先加密再传给模板,跳转后接收的值直接解密就好了