逝去的青春
php加密解密处理类
2012-12-17 jao




01 <?php






02 /*===========================================================






03 = 版权协议:






04 = GPL (The GNU GENERAL PUBLIC LICENSE Version 2, June 1991)






05 =------------------------------------------------------------






06 = 文件名称:cls.sys_crypt.php






07 = 摘    要:php加密解密处理类






08 = 版    本:1.0






09 = 参    考:Discuz论坛的passport相关函数






10 =------------------------------------------------------------






11 = Script Written By PHPWMS项目组






12 = 最后更新:xinge






13 = 最后日期:2007-12-09






14 ============================================================*/






15  






16 class SysCrypt {






17  






18 private $crypt_key;






19  






20 // 构造函数






21 public function __construct($crypt_key) {






22    $this -> crypt_key = $crypt_key;






23 }






24  






25 public function php_encrypt($txt) {






26    srand((double)microtime() * 1000000);






27    $encrypt_key = md5(rand(0,32000));






28    $ctr = 0;






29    $tmp '';






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






31     $ctr $ctr == strlen($encrypt_key) ? 0 : $ctr;






32     $tmp .= $encrypt_key[$ctr].($txt[$i]^$encrypt_key[$ctr++]);






33    }






34    return base64_encode(self::__key($tmp,$this -> crypt_key));






35 }






36  






37 public function php_decrypt($txt) {






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






39    $tmp '';






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






41     $md5 $txt[$i];






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






43    }






44    return $tmp;






45 }






46  






47 private function __key($txt,$encrypt_key) {






48    $encrypt_key = md5($encrypt_key);






49    $ctr = 0;






50    $tmp '';






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






52     $ctr $ctr == strlen($encrypt_key) ? 0 : $ctr;






53     $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];






54    }






55    return $tmp;






56 }






57  






58 public function __destruct() {






59    $this -> crypt_key = null;






60 }






61 }






62  






63  






64 $sc new SysCrypt('phpwms');






65 $text '110';






66 print($sc -> php_encrypt($text));






67 print('<br>');






68 print($sc -> php_decrypt($sc -> php_encrypt($text)));






69 ?>