<?php
/*******************************************************************
 * 版权协议：2009-2019
 * 版权所有: PHP-北京金南曦网络技术有限公司旗下PHPWMS，PHP商城系统技术支持中心http://www.php188.net，并保留所有权利。 
* PHP商城系统网址: http://www.php188.com
 * PHPWMS系统网址：http://www.phpwms.com
 * 销售电话：010-87875088
 * 销售电话：010-87875188 
*------------------------------------------------------------------
 * 这不是一个完全免费软件！您只能在不用于商业目的的前提下对程序代码进
 * 行修改和使用；不允许对程序代码以任何形式任何目的的再发布。
 *------------------------------------------------------------------
 * 文件名称：cls.sys_crypt.php
 * 摘    要：php加密解密处理类
 * 适用范围：PHPWMS 1.0
 * 版    本：1.0
 *------------------------------------------------------------------
 * Script Written By phpwms项目组
 * 最后更新： 2009-09-24 phpwms 由PHP金南曦网络技术有限公司整理发布
 *******************************************************************/

	class SysCrypt {

		private $crypt_key;

		// 构造函数 
		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;
		}
	}
?>