PHP加密解密的类

PHP 投稿 10400 0 评论

PHP加密解密的类

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


class SysCrypt{
	private $crypt_key='http://www.feishuai.vip';//密钥
	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.feishuai.vip');
$text='123456789@qq.com';
$test1=$sc->encrypt($text);
echo '原文:',$text;
echo '<br />';
echo '密文:',$test1;
echo "<br/>";
echo '解密:',$sc->decrypt($test1);

输出结果类似:

原文:123456789@qq.com
密文:VSQBZFRpVysCZFVlAWICYghKVGNQMwRkU31bZVFsV28=
解密:123456789@qq.com

编程笔记 » PHP加密解密的类

赞同 (45) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽