本文目录一览:
- 1、php 怎么加密url啊,不特别长的
- 2、分享一个php加密方法,这个方法还比较实用
- 3、thinkphp怎么加密url参数
- 4、php url参数加密
- 5、URL内 参数加密解密
- 6、php url加密
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加密
传的时候先用自己的函数给参数加密不行吗?模板上还要调用七七八八的方法不好吧。
先加密再传给模板,跳转后接收的值直接解密就好了