PHP源码加密方法

本文主要使用screw plus (screw plus是一个开源的php扩展) 实现PHP源码加密,记录screw plus编译过程及使用方法,默认已经安装好完整LNMP环境;
测试操作系统:CentOS release 6.9 (Final)

  1. 在GitHub上获取screw plus源码

https://github.com/del-xiong/screw-plus

git clone https://git.oschina.net/splot/php-screw-plus.git

2.进入screw plus 源码目录,并检测PHP环境

cd php-screw-plus

在php-screw-plus目录中执行phpize,phpize是用来扩展php扩展模块的,通过phpize可以建立php的扩展模块,而screw plus就是一个PHP扩展模块;
执行成功后可以看到当前的php api版本,扩展api版本等。

[root@test php-screw-plus]# /usr/bin/phpize 
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
[root@test php-screw-plus]# 

phpize一般在php的bin目录下或用户的bin目录下可以找到,如无法找到phpize目录,可通过文件搜索,或确认是否安装了php-devel。

yum -y install php-devel

3.配置screw plus 及PHP路径

./configure --with-php-config=/usr/bin/php-config

如果没报错,说明配置成功了,可以开始下一步编译了。编译之前,建议修改加密的key,使用VIM打开php_screw_plus.h文件,修改#define CAKEY 后面的默认key值。

#define CAKEY  "FwWpZKxH7twCAG4JQMO"
//如果只允许执行加过密的php文件 设置STRICT_MODE为1
//set STRICT_MODE to 1 if you only want the crypted php files to be executed
#define STRICT_MODE 0
#define STRICT_MODE_ERROR_MESSAGE "ACCESS DENIED"
const int maxBytes = 1024*1024*2;

修改保存完毕之后,使用make命令开始编译,最后提示Build complete.说明编译成功,编译生成的扩展文件在modules里面

make
  1. 进入tools目录执行make编译生成加密程序
cd tools/
make

5.启用PHP的加密扩展,编辑php.ini文件,加入screw plus扩展。modules/php_screw_plus.so 路径

vim /etc/php.ini
加入以下扩展配置
extension=/home/php_screw_plus/modules/php_screw_plus.so

重启Apache服务后输出phpinfo信息,如果能找到php_screw_plus,就说明扩展生效了。

6.加密PHP文件
进入tools目录后,执行./screw php文件或文件夹

./screw test.php

执行完成后,再次查看test.php,会发现内容已经变成乱码,但不影响访问,说明加密成功;

你可能感兴趣的:(PHP源码加密方法)