PHP加密解密的类

 
更多

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

class SysCrypt{
	private $crypt_key='http://www.phpernote.com';//密钥
	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.phpernote.com');
$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

打赏

本文固定链接: https://www.cxy163.net/archives/4478 | 绝缘体

该日志由 绝缘体.. 于 2013年05月23日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: PHP加密解密的类 | 绝缘体
关键字: , , , ,

PHP加密解密的类:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter