protected $key='wzxaini9';
/**
* 功能:对字符串进行加密处理
* @param string $str
* 需要加密的内容.
*/
private function passport_encrypt($str)
{
srand((double)microtime() * 1000000);
$encrypt_key=md5(rand(0, 32000));
$ctr=0;
$tmp='';
for($i=0;$i
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode($this->passport_key($tmp,$this->key));
}
/**
* 功能:对字符串进行解密处理
* @param string $str
* 需要解密的密文.
*/
private function passport_decrypt($str)
{
$str=$this->passport_key(base64_decode($str),$this->key);
$tmp='';
for($i=0;$i
$md5=$str[$i];
$tmp.=$str[++$i] ^ $md5;
}
return $tmp;
}
/**
*辅助函数
*/
private function passport_key($str,$encrypt_key)
{
$encrypt_key=md5($encrypt_key);
$ctr=0;
$tmp='';
for($i=0;$i
$ctr=$ctr==strlen($encrypt_key)?0:$ctr;
$tmp.=$str[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
可以传入特定的加密key外加需要加密的内容可根据时间生成唯一的签名,可用于用户身份验证等场景使用