PHP代码保护--Zend Guard的使用详解

 更新时间:2013年06月03日 10:39:08   作者:  
本篇文章是对zend guard的使用进行了详细的分析介绍,需要的朋友参考下
Zend Guard的作用,就是用编译处理的方式来保护PHP源代码免于被反编译查看、未经授权的定制修改、未经许可的使用和重新发布等。而且,它是PHP的东家Zend公司开发的,是完全为PHP量身定做的保护神。
下面,请大家就和我一起来学习使用Zend Guard,加密保护我们的PHP源代码吧。
  
实战:加密PHP源代码
下载:http://www.zend.com/en/products/guard/
接下来让我们准备一个简单的PHP程序test.php,用来测试能否被Zend Guard保护起来。test.php的代码如下:
复制代码 代码如下:

<?php
 phpinfo();
?>

打开Zend Guard,从File(文件)菜单点击,新建一个项目,如图1所示。点击Next进入目录和文件添加界面,因为我们只是测试一个文件,所以点Add File将test.php添加进来,再点击Finish(完成)即可生成项目。
  
这时,Zend Guard会自动打开新建立的项目,在界面的左边列出项目中的文件,右边列出项目的相关信息。现在,我们就可以将源代码编译了。点击右边Links(链接)中的Encode(编译),界面最下面的Console(控制台)窗口显示“The operation has completed successfully.”,意思为编译已经完成。
现在再去加密后文件保存的目录中,会看到其中也有一个test.php,它是否和原来的test.php一样呢?用编辑软件打开它,可以看到它不再是原来的内容了,如图2所示。注意:自己一定要保存好原始代码,不然丢失了,连你自己也没有办法查看和修改的。
  
接下来测试一下加密的代码,从浏览器访问加密后的PHP程序,哎呀,出错了,不能运行,并显示如图3所示的信息。原来,使用Zend Guard加密后的PHP程序,还需要一个搭档—Zend Optimizer,才能正常执行并提升效率。可从http://www.zend.com/en/products/guard/下载安装。安装过程中,“Choose the php.ini folder”这一步表示设置系统上PHP的配置文件php.ini的位置,“Choose the Web server's root folder”这一步表示设置Web服务器软件所在的位置。安装完成以后,用记事本打开php.ini,在最后我们会看到类似下面的配置信息:
[Zend]
zend_extension_manager.optimizer_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\Optimizer-3.3.0"
zend_extension_ts="E:\Program Files\Zend\ZendOptimizer-3.3.0\lib\ZendExtensionManager.dll"
这就表示Zend Optimizer已经安装成功了,我们可以重新启动Web服务器软件,让Zend Optimizer生效即可。注意:如果所使用的服务器已经安装过或者包含了Zend Optimizer,就不用再次安装了。
现在再次从浏览器访问加密后的PHP程序试试,果然可以正常运行了,从显示的信息中,我们可以看到Zend Optimizer的信息  
解析Zend Guard加密原理
让我们看看流程,就可以对Zend Guard的保护原理一目了然了。通过Zend Guard将PHP源代码编译为加密代码,然后通过加载了Zend Optimizer的PHP执行即可。分发给别人的程序,是加密后的代码,可以执行,但是没有源代码,别人也就无法查看和修改了。因而,我们可以在程序中加入适当的代码,用来检测系统的当前时间,看是否超过了预先设置的期限,如果超过了,就退出程序不让继续执行。

Zend Guard的工作原理和Java类似,编译后的PHP程序就像编译好的Java二进制代码,需要JVM的支持才能运行,Zend Optimizer可以看作是PHP的虚拟机。Zend Guard与Zend Optimizer相互配合,就能完成编译加密和执行编译后代码的工作。

License管理的方面属于更为深层的使用,可以用来生成许可文件,从而通过选择不同的许可模式来限制程序的使用,例如同时使用的用户数、时间限制、网络分段或者特定的服务器等。有兴趣的读者可以查看Zend Guard自身所带的帮助文件,来了解具体的用法。

相关文章

  • php实现微信发红包

    php实现微信发红包

    现在微信发红包比较流行,大家都会使用微信发红包,马上又该过年了,发红包又要开始了,小编这就给大家分享一个php实现微信发红包程序的算法,非常的实用,这里推荐给小伙伴们,有需要的朋友可以参考下。
    2015-12-12
  • Joomla实现组件中弹出一个模式(modal)窗口的方法

    Joomla实现组件中弹出一个模式(modal)窗口的方法

    这篇文章主要介绍了Joomla实现组件中弹出一个模式(modal)窗口的方法,列举了2种常用的Joomla弹出模式窗口的技巧供大家对比参考,需要的朋友可以参考下
    2016-05-05
  • 用php实现分页效果的示例代码

    用php实现分页效果的示例代码

    分页效果在网页中是常见的,可是怎样才能实现分页呢,今天做了两种方法来实现一下分页的效果,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友参考下吧
    2020-12-12
  • php 提速工具eAccelerator 配置参数详解

    php 提速工具eAccelerator 配置参数详解

    php 提速工具eAccelerator 配置参数详解,需要的朋友可以参考下。
    2010-05-05
  • Symfony2获取web目录绝对路径、相对路径、网址的方法

    Symfony2获取web目录绝对路径、相对路径、网址的方法

    这篇文章主要介绍了Symfony2获取web目录绝对路径、相对路径、网址的方法,结合实例形式分析了Symfony获取路径与网址的常用操作技巧,并给出了Request完整文件的源码供大家下载参考,需要的朋友可以参考下
    2016-11-11
  • PHP将英文数字转换为阿拉伯数字实例讲解

    PHP将英文数字转换为阿拉伯数字实例讲解

    在本篇文章里小编给大家分享了关于PHP将英文数字转换为阿拉伯数字实例内容,有兴趣的朋友们可以参考学习下。
    2019-01-01
  • Smarty分页实现方法完整实例

    Smarty分页实现方法完整实例

    这篇文章主要介绍了Smarty分页实现方法,涉及基于Smarty的数据库查询、分页相关计算与模板操作技巧,需要的朋友可以参考下
    2016-05-05
  • vscode运行php报错php not found解决办法

    vscode运行php报错php not found解决办法

    这篇文章主要给大家介绍了关于vscode运行php报错php not found的解决办法,这个问题可能是由于您的计算机上没有安装PHP或者VS Code没有正确配置PHP的路径所导致的,文中将解决的办法介绍的很详细,需要的朋友可以参考下
    2023-07-07
  • Laravel中间件实现原理详解

    Laravel中间件实现原理详解

    这篇文章主要介绍了Laravel中间件实现原理,较为详细的分析了Laravel中间件的概念、原理及相关方法与使用技巧,需要的朋友可以参考下
    2016-10-10
  • PHP连接sftp并下载文件的方法教程

    PHP连接sftp并下载文件的方法教程

    这篇文章主要给大家介绍了关于PHP连接sftp并下载文件的相关资料,需要的朋友可以参考下
    2018-08-08

最新评论