Zend Guard使用指南及问题处理

 更新时间:2015年01月07日 14:35:21   投稿:hebedich  
这篇文章主要介绍了Zend Guard使用指南及问题处理,需要的朋友可以参考下

Zend Guard是目前市面上最成熟的PHP源码加密产品了。

刚好需要对自己的产品进行加密,折腾了一晚上,终于搞定,将碰到的问题及解决方法记录下来,方便日后需要,也可以帮助其他人。
我使用的是Wampserver,其中php的版本是5.3.10。

Zend Guard的安装及破解

点击下载Zend Guard5.5.0,下载完成后,请自行傻瓜化安装

这里需要注意以下几点

  1、本KEY的有效时间为2010年7月10号,因此激活时请将自己电脑系统时间调整至这个时间以前
  2、本KEY激活的为试用版,加密过的文件只有14天有效时间,因此在加密文件时,请将自己电脑系统时间向后调整N年,比如2099-12-31
  3、下载授权文件[zend_guard授权文件.zip],解压得到zend_guard.zl,即为激活用的文件
  4、打开Zend Guard 5.5.0,[Help]->[Register]->[Search for a license file on my disk],选择文件激活即可。

如何使用Zend Guard进行加密

  1、打开Zend Guard 5.5.0,[File]->[New]->[Zend Guard Project],新建项目
  2、在弹窗的窗口,前3项随便填吧,最后一项是加密后文件的保存位置,然后[Next];
  3、本步骤是选择要加密的文件,可以为单个文件[Add File]和整个文件夹[Add Folder],然后[Next]
  4、接下来是选择PHP版本[与你服务器上PHP的版本相对照],这里很重要,版本不对会出错,[Finish]完成项目的创建
  5、在Zend Guard左侧的Guard Explorer中,可以看到你新建的项目了,鼠标选中后,右键[Encode Project],完成

Zend Guard Run-time support missing问题的解决

虽然现在可以成功加密php源码了,但是当执行脚本的时候,会发现不能正常执行,会显示如下信息

Zend Guard Run-time support missing!
One more more files on this web site were encoded by ZendGuard and the required run-time support is not installed orproperly configured.
......

原来,加密后的php代码需要ZendGuardLoader模块才能正常运行。
因为我的php版本是5.3.10的,所以我这里只提供了ZendGuardLoader-php-5.3-Windows,如果是其他版本的php,请自行百度。
点击下载ZendGuardLoader-php-5.3-Windows
下载好后解压压缩包,找到目录下的 ZendLoader.dll 文件,将它放到你的php目录下ext下,再编辑php.ini文件,添加一段代码(如):

复制代码 代码如下:

[Zend.loader]
zend_loader.enable=1
zend_loader.disable_licensing=1
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
zend_extension="你的PHP安装目录\ext\ZendLoader.dll"

  重启wampserver
  运气好的话,会发现可以成长执行了,运气不好的话,还是会发现以上错误。
  这里我们已经安装了zend guard loader了,为什么还是无法执行zend加密后的php脚本呢?
  通过查看输出phpinfo()信息,我发现有这么几行信息:

复制代码 代码如下:

  PHP Extension 20090626
  Zend Extension 220090626
  Zend Extension Build API220090626,TS,VC9

  请注意,其中的TS是thread safety的简写(即线程安全)

  一时也找不出原因,索性直接打开zend guard官网进行搜索,然后就解决了。

  原来,zend guard loader只支持NTS的版本,意味着如果你的php版本是TS的话,就没法使用zend guard loader了,如果你想查看自己的php是ts还是nts的,只需要输出phpinfo,然后搜索下:Thread Safety,disabled对应nts版本,否则为ts。

  因此,终极解决办法就是,下载个php NTS版本进行安装即可。

相关文章

  • PHP仿tp实现mvc框架基本设计思路与实现方法分析

    PHP仿tp实现mvc框架基本设计思路与实现方法分析

    这篇文章主要介绍了PHP仿tp实现mvc框架基本设计思路与实现方法,简单讲述了php实现tp框架的原理,并结合实例形式分析了相关控制器、视图及URL访问操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • 一款简单实用的php操作mysql数据库类

    一款简单实用的php操作mysql数据库类

    这篇文章主要介绍了一款简单实用的php操作mysql数据库类,不但包含了php针对mysql数据库的常见操作之外,还有针对危险字符的过滤功能,非常具有实用价值,需要的朋友可以参考下
    2014-12-12
  • Thinkphp6 配置并使用redis图文详解

    Thinkphp6 配置并使用redis图文详解

    这篇文章主要介绍了Thinkphp6 配置并使用redis的方法,结合实例形式详细分析了Redis的安装、配置以及thinkphp6操作Redis的基本技巧,需要的朋友可以参考下
    2023-06-06
  • php初学者写及时补给skype用户充话费的小程序

    php初学者写及时补给skype用户充话费的小程序

    前段时间有一个活动上线,存在一个有少量的skype用户没充上话费的问题,今天去数据库(mysql)查询了一下,吓我一跳,还真多.这样让我挨个挨个地充,肯定累死人不可
    2008-11-11
  • php调用C代码的实现方法

    php调用C代码的实现方法

    本篇文章主要是对php调用C代码的实现方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • PHP+redis实现的悲观锁机制示例

    PHP+redis实现的悲观锁机制示例

    这篇文章主要介绍了PHP+redis实现的悲观锁机制,简单介绍了redis锁机制与乐观锁、悲观锁等概念,并结合实例形式分析了php+redis实现悲观锁相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • PHP编程实现csv文件导入mysql数据库的方法

    PHP编程实现csv文件导入mysql数据库的方法

    这篇文章主要介绍了PHP编程实现csv文件导入mysql数据库的方法,涉及php文件读取、转换、数据库的连接、插入等相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • PHP下判断网址是否有效的代码

    PHP下判断网址是否有效的代码

    判断一个url能否正常访问,避免使用file_get_contents时,因为url无法访问,而出现致命错误,终止程序的问题
    2011-10-10
  • ThinkPHP6.0 重写URL去掉Index.php的解决方法

    ThinkPHP6.0 重写URL去掉Index.php的解决方法

    这篇文章主要介绍了ThinkPHP6.0 重写URL去掉Index.php的解决方法,解决问题最好多看看官方给的文档,但有时候也不能全看官网文档,可以结合官网下面的讨论区,借鉴各个大佬们的回答去解决问题
    2021-01-01
  • PHP实现创建一个RPC服务操作示例

    PHP实现创建一个RPC服务操作示例

    这篇文章主要介绍了PHP实现创建一个RPC服务操作,结合实例形式分析了PHP基于socket扩展通信实现的RPC远程调用相关操作技巧,需要的朋友可以参考下
    2020-02-02

最新评论