这篇文章的主要内容是介绍了关于php加密类 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
namespace app\index\controller;class Crypt{
private $key = "";
public function __construct($key = null)
{
if (!is_null($key)) {
$this->key = $key;
}
}
//加密函数
public function passport_encrypt($txt)
{
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for ($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr] . ($txt[$i] ^ $encrypt_key[$ctr++]);
}
return urlencode(base64_encode($this->passport_key($tmp, $this->key)));
}
//解密函数
public function passport_decrypt($txt)
{
$txt = $this->passport_key(base64_decode(urldecode($txt)), $this->key);
$tmp = '';
for ($i = 0; $i < strlen($txt); $i++) {
$md5 = $txt[$i];
$tmp .= $txt[++$i] ^ $md5;
}
return $tmp;
}
private function passport_key($txt, $encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for ($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}
}