|
下面是可以将我们的url地址加密.确保我们提交的数据安全
以下是代码片段:
<?phpfunction keyED($txt,$encrypt_key) //定义一个keyED{ $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;}?>
下面是函数调用的实例
以下是代码片段:
$key = "key";//生产加密参数地址for ($i=0;$i<10;$i++){echo "<a href="?url=" mce_href="?url="".encrypt_url("id=$i&sdf=asdf& time=".time(),$key).">php技术文章$i</a><br>"; }//获取参数地址$get = geturl($_GET['url'],$key);var_dump($get); |
|
|