background image

Php screw 加密

——安装与使用说明

本文是对 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

这样, 解析用的 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 文件(文件是可以任意取的),其内容是一
句话

extension=php_screw.so

方法二:通过修改 php.ini 文件, 增加了一句 extension=php_screw.so, 重启 apache 后就成功了.

重要说明:
编译的.so 文件理论上跟你当前的 php 版本是相关的,也就是说,如果你是在 php 5.1 下编
译的,就不能拿到 php 5.2 下去用,因为 php 的可加载模块总是与其版本相关的.而加密
用的 screw 可执行文件理论上讲无所谓,只有他跟 screw.so 属于同一个版本就可以

测试:
编写一个 hello, world 程序,文件名为 hello.php 如下:
<?phpecho 
"Hello,world";
?>