对于url加密解密,我们通常简单的使用urlencode
或rawurlencode
,有时为了使url加密获得更多安全保障,我们就要使用复杂一点的url加密解密程序来完成了。本文介绍一个php url加密解密程序,代码不多,使用简单,值得推荐使用。
url加密解密函数如下:
//---------------以下为加密函数(复制过去就行了)----------------- function keyED($txt,$encrypt_key){ $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); } $key_url_md_5 = 'vps5u.com'; //可以更换为其它的加密标记 //---------------以上为加密函数-结束(复制过去就行了)-----------------
使用方法:
// 加密url,url每次加密生成的字符串都是不同的 $url = 'http://www.vps5u.com/'; //这个是要加密的url $enc_url = encrypt_url($url,$key_url_md_5); //调用加密方法 // 解密url $enc_url = 'WzIBIlEnDi1TaQZ%2BAS4HcQN2DCwAeAAnAHlcKQk3ACVbdFdjUD1XaQYp'; //这个是url加密后的字符串 $url = decrypt_url($enc_url,$key_url_md_5); //调用解密方法
这个php url加密解密程序,对于含有中文的url也是同样适用的。