code: public function encrypt($txt, $key) 
  	{
  		// 使用随机数发生器产生 0~32000 的值并 MD5()
  		srand((double)microtime() * 1000000);
  		$encryptKey = md5(rand(0, 32000));
  
  		// 变量初始化
  		$ctr = 0;
  		$tmp = '';
  
  		// for 循环，$i 为从 0 开始，到小于 $txt 字串长度的整数
  		for($i = 0; $i < strlen($txt); $i++) {
  			// 如果 $ctr = $encryptKey 的长度，则 $ctr 清零
  			$ctr = $ctr == strlen($encryptKey) ? 0 : $ctr;
  			// $tmp 字串在末尾增加两位，其第一位内容为 $encryptKey 的第 $ctr 位，
  			// 第二位内容为 $txt 的第 $i 位与 $encryptKey 的 $ctr 位取异或。然后 $ctr = $ctr + 1
  			$tmp .= $encryptKey[$ctr].($txt[$i] ^ $encryptKey[$ctr++]);
  		}
  
  		// 返回结果，结果为 self::key() 函数返回值的 base64 编码结果
  		return base64_encode(self::key($tmp, $key));
  	}
docs: 加密
  
  @param string 等待加密的原字串
  @param string 私有密匙(用于解密和加密)
  
  @return string 原字串经过私有密匙加密后的结果