PHP實(shí)現(xiàn)的加密解密處理類

字號(hào):


    本文實(shí)例講述了PHP實(shí)現(xiàn)的加密解密處理類。分享給大家供大家參考,具體如下:
    <?php
     /*===========================================================
     = 版權(quán)協(xié)議:
     = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991)
     =------------------------------------------------------------
     = 文件名稱:cls.sys_crypt.php
     = 摘  要:php加密解密處理類
     = 版  本:1.0
     = 參  考:Discuz論壇的passport相關(guān)函數(shù)
     =------------------------------------------------------------
     = 最后更新日期:2007-12-09
     ============================================================*/
     class SysCrypt {
     private $crypt_key;
     // 構(gòu)造函數(shù)
     public function __construct($crypt_key) {
      $this -> crypt_key = $crypt_key;
     }
     public function php_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 php_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;
     }
     }
     //執(zhí)行代碼
     $sc = new SysCrypt('phpwms');
     $text = 'abc10000008910000000990099hh'; //需要加密的數(shù)據(jù)
     print($sc -> php_encrypt($text)); //加密
     print('<br>');
     print($sc -> php_decrypt($sc -> php_encrypt($text))); //解密
    ?>
    希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。