一般情况下,如果用GET查询的话,那URL都是www.yoursite.com/list.php?page=1&type=2这样的形式;但是我看安居客的加密URL很奇怪,看不出里面的参数是怎么处理的。例如:http://beijing.anjuke.com/v2/sale/W0QQdsmZmmQQpZ2网上流传的那些URL加密解密的方法大多是用urlencode和urldecode,可我看这个不像是这么处理的。希望有高手来解答这个问题。
调试欢乐多
这里不是get发送数据,没有表单没有什么数据.只是个连接.
// ###################### Start 加密解密文本的PHP类 ####################### 2005
class Crypter
{
var $key; function Crypter($clave)
{
$this->key = $clave;
} function setKey($clave)
{
$this->key = $clave;
} function keyED($txt)
{
$encrypt_key = md5($this->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)
{
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$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 base64_encode($this->keyED($tmp));
} function decrypt($txt)
{
$txt = $this->keyED(base64_decode($txt));
$tmp = "";
for ($i=0;$i<strlen($txt);$i++){
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}
}//解密sql查询语句
$key = "test";
$string = "hello world.";
$crypter = & new Crypter( $key );
$encrypt = $crypter->encrypt( $string );
$decrypt = $crypter->decrypt( $encrypt );
echo '加密后的文本是:'.$encrypt;
echo '<br />解密后的文本是:'.$decrypt;
?>
他的参数是通过解析pathinfo来提取参数的