对于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也是同样适用的。
