最近在处理网站的图片,电话号码加密,今天在网上也看到了一个“url地址参数加密函数”,特收来供学习php的朋友们参考!
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); } function geturl($str,$key) { $str = decrypt_url($str,$key); $url_array = explode('&',$str); if (is_array($url_array)) { foreach ($url_array as $var) { $var_array = explode("=",$var); $vars[$var_array[0]]=$var_array[1]; } } return $vars; }
函数描述及例子
希望这个url参数加密函数对大家有所帮助
$key = 'key'; //生产加密参数地址 for ($i=0;$i<10;$i++) { echo "<a href=./deurl.php?url=".encrypt_url("id=$i&sdf=asdf&time=".time(),$key).">文章$i</a><br>"; } //获取参数地址 $get = geturl($_GET['url'],$key); var_dump($get);
url地址rawurlencode And rawurldecode
http://www.onexin.net/tool/urlcode.php
转载请注明出处:https://www.onexin.net/url-address-parameter-encryption-function/