注:
加密前请做好备份!
加密后原文件全部被加密,过程是不可逆的。
要求 PHP >= 7.0。
https://github.com/lihancong/tonyenc
一、安装
1、编译前可在 core.h 中修改如下内容
/* 这里定制你的加密特征头,不限长度,十六进制哦 */
const u_char tonyenc_header[] = {
0x66, 0x88, 0xff, 0x4f,
0x68, 0x86, 0x00, 0x56,
0x11, 0x16, 0x16, 0x18,
};
/* 这里指定密钥,长一些更安全 */
const u_char tonyenc_key[] = {
0x9f, 0x49, 0x52, 0x00,
0x58, 0x9f, 0xff, 0x21,
0x3e, 0xfe, 0xea, 0xfa,
0xa6, 0x33, 0xf3, 0xc6,
};
加或修改数字即可,以防与其他人的一样,安全性变差。
2、在 Linux、macOS 上编译
可将tonyenc安装在服务器根目录或其他任意位置,如 cd /root/
。
编译过程中可能的错误处理方法见下面三
依次在命令行中执行如下命令
git clone https://github.com/lihancong/tonyenc.git
cd tonyenc
phpize
./configure
make
make test
3、将编译好的文件 modules/tonyenc.so 加入到配置项 extension=tonyenc.so。
将 tonyenc.so 复制到 php 安装目录下,
依次执行如下命令
cd /root/tonyenc/modules/
cp tonyenc.so /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/
vi /www/server/php/73/etc/php.ini
修改 php.ini 文件,末尾增加 tonyenc.so 扩展:extension=tonyenc.so
4、重启 PHP 服务
二、加密
进入tonyenc目录下执行加密。
cd ~/tonyenc/
php tonyenc.php example.php dir/
执行上面命令,即可加密 example.php 和 dir 目录下的所有 php 文件。
三、编译执行中可能的错误提示
1、执行 ./configure 时
出现报错信息:configure: error: Cannot find php-config. Please use --with-php-config=PATH
这个报错指的是php-config文件没有找到。
解决方法:
出现这种情况, 先确认是本机有没 php-config 文件, 使用如下命令查找
find / -name php-config
如 /www/server/php/73/bin/php-config。
①如果有,则执行如下命令
./configure --with-php-config=/www/server/php/73/bin/php-config
/www/server/php/73/bin/php-config 是自己服务器上该文件的路径,具体路径以各自为准,一般在PHP安装目录。
②如果没有 php-config 这个文件, 可能是没有安装 php-config 命令。
安装:
yum install php-devel
安装完后即可按第一步操作找到文件路径 ,然后继续安装。
2、执行 make test 时
出现报错信息:
解决方法:
删除禁用函数 proc_open。
**方法①:**可在宝塔面板,软件商店—php-7.3—设置—禁用函数—删除proc_open。
方法②:
vi /www/server/php/73/etc/php.ini
找到 disable_functions = shell_exec, system, passthru, exec, popen, proc_open
改为 disable_functions = shell_exec, system, passthru, exec, popen
保存退出。