php代码加密 第4章 php-screw-plus

2022-08-27

一、简介

screw plus 基于扩展,免费,网址:https://github.com/del-xiong/screw-plus

screw plus 是一个开源的 php 扩展,作用是对 php 文件进行加密,网络上提供 php 加密的服务很多,但大多都只是混淆级别的加密,被人拿到加密文件问只要有足够耐心就能破解,与之不同的是,screw plus 采用扩展来加解密,而且是全球金融业流行的高强度 AES256 加密,除非破解了服务器,否则黑客拿到了加密文件也只是一堆乱码。

screw plus 支持 php5.6-php7

20220621 screw plus 不再进行维护,对加密运行有需求的朋友可转向 screw opcode,基于 opcode 的加密,可为 php 提供更安全、高效的加密运行环境,项目开发中暂未发布(截至 20220827)

二、安装

2.1、下载

cd /usr/local

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

2.2、修改加密 key

vim /usr/local/php-screw-plus/php_screw_plus.h

https://file.lulublog.cn/images/3/2022/08/V121Fr312aDrzW6wht2Ym3fF3dh3JV.png

修改第一行的 define CAKEY,建议 16-32 个英文字母,也可以不修改,直接使用原来的加密 key。

2.3、修改 STRICT_MODE

除了 CAKEY 之外,还有个 STRICT_MODE,这个参数是用来控制是不是执行普通未加密的 .php 代码的。 默认为0,就是说执行未加密的代码。 

改成 1 的话,那么网站内部根目录下,只能有加密的源码,未加密的源码一律不执行。

官方的说法是:可以阻止黑客上传的木马文件。猛地听上去,还是挺有道理的。 

2.4、安装

cd /usr/local/php-screw-plus

/usr/local/php/bin/phpize

备注:请输入服务器的 phpize 文件路径

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

备注:请输入服务器的 php-config 文件路径

make

make install

成功之后,我们打开 php.ini,把 php_screw_plus.so 加入到文件最后,重启 php

进入 phpinfo,查看是否扩展已成功安装

https://file.lulublog.cn/images/3/2022/08/e9m9sm94FE50D9brSMJTtbQms4MT4s.png

三、使用

3.1、生成

cd /usr/local/php-screw-plus/tools

make

备注:此时在 /usr/local/php-screw-plus/tools/ 会多出来一个文件 screw

3.2、加密

3.2.1、加密文件

/usr/local/php-screw-plus/tools/screw /mnt/wwwroot/phpinfo.php

备注:/mnt/wwwroot/phpinfo.php 是 php 文件路径

出现:Success Crypting - /mnt/wwwroot/phpinfo.php 表示成功加密

https://file.lulublog.cn/images/3/2022/08/jggrhQz0t71cjUZquR1R7gcPz7IGiE.png

https://file.lulublog.cn/images/3/2022/08/RKUwT0XUKp0MWm0yzdw05usvpsKvdC.png

3.2.2、加密文件夹

/usr/local/php-screw-plus/tools/screw /mnt/wwwroot/test

备注:/mnt/wwwroot/test 是 php 文件夹路径

备注:会自动遍历文件夹中的文件夹

3.3、解密

3.3.1、解密文件

/usr/local/php-screw-plus/tools/screw /mnt/wwwroot/phpinfo.php -d

备注:/mnt/wwwroot/phpinfo.php 是 php 文件路径

出现:Success Decrypting - /mnt/wwwroot/phpinfo.php 成功解密

3.3.2、解密文件夹

/usr/local/php-screw-plus/tools/screw /mnt/wwwroot/test -d

备注:/mnt/wwwroot/test 是 php 文件夹路径

备注:会自动遍历文件夹中的文件夹

阅读 99