php的一个简单加密解密代码

php的一个简单加密解密代码

分享一个php加密解密的类,在用户注册的时候发送邮件验证的时候估计会用的到的,代码如下

代码如下:

class SysCrypt{

private $crypt_key='http://www.jb51.net';//密钥

public function __construct($crypt_key){

$this->crypt_key=$crypt_key;

}

public function 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 base64_encode(self::__key($tmp,$this->crypt_key));

}

public function decrypt($txt){

$txt=self::__key(base64_decode($txt),$this->crypt_key);

$tmp='';

for($i=0;$i<strlen($txt);$i++){

$md5=$txt[$i];

$tmp.=$txt[++$i]^$md5;

}

return $tmp;

}

private function __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;

}

public function __destruct(){

$this->crypt_key=NULL;

}

}

该类使用方法:

代码如下:

$sc=new SysCrypt('http://www.jb51.net');

$text='yhm.1234@163.com';

$test1=$sc->encrypt($text);

echo '原文:',$text;

echo '<br />';

echo '密文:',$test1;

echo "<br/>";

echo '解密:',$sc->decrypt($test1);

输出结果类似:

原文:yhm.1234@163.com

密文:BS8DbFU6AioCNFFlVGZQMgRGBDUOYlEzBXoAZgo0Bjk=

解密:yhm.1234@163.com