php_screw 1.5:php加密: 安装与使用详解
前端之家收集整理的这篇文章主要介绍了
php_screw 1.5:php加密: 安装与使用详解,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHP文件通常以文本格式存贮在服务器端,很容易被别人读到源代码,为了对源代码进行保护,可以采用对源代码进行加密的方式.要实现该功能需要两部分:一是加密程序,实现对PHP文件的加密. 另一个就是对加密过的PHP文件进行解析,以得到运行结果. 前者的实现比较简单,就是一程序而已. 后者的实现大部分都是通过PHP module的形式来实现的.PHP_screw(螺丝钉)可以实现以上的功能.最新版本是1.5,可以在sourceforge上下载.
安装:
安装的目的其实就是产生两个
文件:一个是用于加密
PHP文件的screw,另一个就是
PHP加载的解析模块
PHP_screw.so
1.将源
代码包展开,并进入该入目录:
2. 执行
PHPize,就会在该目录下产生一个configure
3. 然后,运行configure
4. 再make
<FONT style="COLOR: #ff0000">这样,解析用的
PHP_screw.so就
生成了. 接下来要得到加密用的screw
1. 进入源码的tools目录
2. make
这样就
生成了screw了. 如果要加密一个lx.
PHP文件,则: screw lx.
PHP,lx.
PHP就变成加密的了,原来明文的lx.
PHP被改名为lx.
PHP.screw
接下来的任务就应该是加载
PHP_screw.so模块了,
首先,将该
文件COPY到module目录下,具体是哪个目录,可以参见/etc/
PHP.ini
配置文件中的extension_dir项,RHEL 5中为/usr/lib/
PHP/modules
方法一:可以在/etc/PHP.d目录下新建一个screw.ini文件(文件是可以任意取的),其内容是一句话
<FONT style="COLOR: #ff0000">extension=
PHP_screw.so
方法二:通过修改PHP.ini文件,增加了一句extension=PHP_screw.so,重启apache后就成功了.
<FONT style="COLOR: #ff0000">
重要说明:
<FONT style="COLOR: #ff0000">编译的.so
文件理论上跟你当前的
PHP版本是相关的,也就是说,如果你是在
PHP 5.1下编译的,就不能拿到
PHP 5.2下去用,因为
PHP的可加载模块总是与其版本相关的.而加密用的screw可执行
文件理论上讲无所谓,只有他跟screw.so属于同一个版本就可以
测试:
编写一个hello,world程序,
文件名为hello.
PHP如下:
<div class="codetitle">
<a style="CURSOR: pointer" data="31312" class="copybut" id="copybut31312" onclick="doCopy('code31312')"> 代码如下: <div class="codebody" id="code31312">
<?
PHPecho
"Hello,world";
?>
用
PHP hello.
PHP测试程序是否能成功
显示,成功
显示后,用screw对其进行加密(screw helllo.
PHP),然后cat一下该
PHP文件,发现已经不是文本的了,变成了许多乱字符,说明加秘成功,然后再
PHP hello.
PHP,如果能正常
显示hello,world,则说明加密的解析也没有问题了,一切就算OK了.否则,就说明还有不对的地方,需要再仔细检查.
安装过程中遇到的问题:
<FONT style="COLOR: #ff0000">1.找不到PHPize
PHPize是属于
PHP-develp的一个工具,(具体作用请自行
解决) 因此,必须要安装
PHP-develp包. 中间有一些依赖,如下:
<div class="codetitle">
<a style="CURSOR: pointer" data="23026" class="copybut" id="copybut23026" onclick="doCopy('code23026')"> 代码如下: <div class="codebody" id="code23026">
[root@localhost Server]# rpm -ivh
PHP-devel-5.1.6-5.el5.i386.rpm
warning:
PHP-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
error:
Failed dependencies:
autoconf is needed by
PHP-devel-5.1.6-5.el5.i386
automake is needed by
PHP-devel-5.1.6-5.el5.i386
[root@localhost Server]# rpm -ivh autoconf
autoconf213-2.13-12.1.noarch.rpm autoconf-2.59-12.noarch.rpm
[root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm
warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
error:
Failed dependencies:
imake is needed by autoconf-2.59-12.noarch
[root@localhost Server]# rpm -ivh imake-1.0.2-3.i386.rpm
warning: imake-1.0.2-3.i386.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing... ########################################### [100%]
1:imake ########################################### [100%]
[root@localhost Server]# rpm -ivh autoconf-2.59-12.noarch.rpm
warning: autoconf-2.59-12.noarch.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing... ########################################### [100%]
1:autoconf ########################################### [100%]
[root@localhost Server]# rpm -ivh automake
automake14-1.4p6-13.noarch.rpm automake16-1.6.3-8.noarch.rpm automake-1.9.6-2.1.noarch.rpm
automake15-1.5-16.noarch.rpm automake17-1.7.9-7.noarch.rpm
[root@localhost Server]# rpm -ivh automake-1.9.6-2.1.noarch.rpm
warning: automake-1.9.6-2.1.noarch.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing... ########################################### [100%]
1:automake ########################################### [100%]
[root@localhost Server]# rpm -ivh
PHP-devel-5.1.6-5.el5.i386.rpm
warning:
PHP-devel-5.1.6-5.el5.i386.rpm: Header V3 DSA signature: NOKEY,key ID 37017186
Preparing... ########################################### [100%]
1:
PHP-devel ########################################### [100%]
需要在安装的第一步就开始. 该标识串在源码的
_screw.h中. 在编译之前,可以更改这个字符串,例如,更改为PeterHu,相应的下面的长度就不再是10了,而是\tPeterHu\t,一共7个了.