PHP加密解密的类

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

  1. class SysCrypt{ 
  2.     private $crypt_key='http://www.phpernote.com';//密钥 
  3.     public function __construct($crypt_key){ 
  4.         $this->crypt_key=$crypt_key
  5.     } 
  6.     public function encrypt($txt){ 
  7.         srand((double)microtime()*1000000); 
  8.         $encrypt_key=md5(rand(0,32000)); 
  9.         $ctr=0; 
  10.         $tmp=''
  11.         for($i=0;$i<strlen($txt);$i++){ 
  12.             $ctr=$ctr==strlen($encrypt_key)?0:$ctr
  13.             $tmp.=$encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]); 
  14.         } 
  15.         return base64_encode(self::__key($tmp,$this->crypt_key)); 
  16.     } 
  17.     public function decrypt($txt){ 
  18.         $txt=self::__key(base64_decode($txt),$this->crypt_key); 
  19.         $tmp=''
  20.         for($i=0;$i<strlen($txt);$i++){ 
  21.             $md5=$txt[$i]; 
  22.             $tmp.=$txt[++$i]^$md5
  23.         } 
  24.         return $tmp
  25.     } 
  26.     private function __key($txt,$encrypt_key){ 
  27.         $encrypt_key=md5($encrypt_key); 
  28.         $ctr=0; 
  29.         $tmp=''
  30.         for($i=0;$i<strlen($txt);$i++){ 
  31.             $ctr=$ctr==strlen($encrypt_key)?0:$ctr
  32.             $tmp.=$txt[$i]^$encrypt_key[$ctr++]; 
  33.         } 
  34.         return $tmp
  35.     } 
  36.     public function __destruct(){ 
  37.         $this->crypt_key=NULL; 
  38.     } 

该类使用方法:

  1. $sc=new SysCrypt('http://www.daimajiayuan.com'); 
  2. $text='yhm.1234@163.com'
  3. $test1=$sc->encrypt($text); 
  4. echo '原文:',$text
  5. echo '<br />'
  6. echo '密文:',$test1
  7. echo "<br/>"
  8. echo '解密:',$sc->decrypt($test1); 

输出结果类似:

  1. 原文:yhm.1234@163.com 
  2. 密文:VSQBZFRpVysCZFVlAWICYghKVGNQMwRkU31bZVFsV28
  3. 解密:yhm.1234@163.com 

转载请注明:代码家园 » PHP加密解密的类

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)