本文目录一览:
php通过base64实现动态url加密和解密的过程
BASE64不算加密,不要学微软,没有实际价值、浪费系统资源。
在客户端是无法使用PHP的,PHP只能在服务器上运行,在客户端可以考虑使用JAVASCRIPT进行BASE64编码,网上有许多这样的例子,比如:
在服务器端可以使用PHP识别BASE64编码,使用函数base64decode即可。
分享一个php加密方法,这个方法还比较实用
我们在开发过程中,有的时候GET传值,字符串太长,我们可以用这个方法,在传值之前先调用函数lock_url(加密字符串),加密以后在传递,GET接受以后用函数unlock_url(待解密字符串)进行解密。
如果大家有更好更简单的方法,发评论区我们一起讨论学习!
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);
}
针对url的加密与解密
encodeURIComponent(string)加密,decodeURIComponent(string)解密
city: encodeURIComponent(`'${this.cityVal}'`)//this.cityVal为要加密的中文
let href = util.getUrlParam('city')
console.log('解析url地址1=====',href)
console.log('解析url地址2=====',decodeURIComponent(href))
console.log('解析url地址2=====',decodeURIComponent(decodeURIComponent(href)))//需解析两层