源码:liexusong/php-beast 可以参照文档
注意如果系统有多个 php 版本,安装方法有所不同,需要安装扩展到对应的 php 版本
Linux 系统安装php-beast扩展 (注意需要 root 安装保证权限)
$ wget https://github.com/liexusong/php-beast/archive/master.zip $ unzip master.zip $ cd php-beast-master $ phpize $ ./configure $ sudo make && make install
windows系统php-beast扩展可以参考文档
编译好之后修改 php.ini 配置文件(可能 php.ini 配置 有 cli 和 fpm)cli 就命令行运行 php, 加入配置项: extension=beast.so, 重启 php-fpm
加密方案 进入 php-beast-master/tool/ 目录配置 configure.ini 文件
#source path 需要加密php的路径 src_path = "" #destination path 加密的php 放到的目录 dst_path = "" #expire time 源码使用有效期 expire = "2021-05-21 16:18:12" #encrypt type 加密类型 可以有 selection: DES, AES, BASE64 encrypt_type = "DES"
进入 php-beast-master/tool/ 执行 php encode_files.php,加密后的结果
可以定制修改 默认的加密源码这个不容易给破解
修改加密后的文件头结构:打开 header.c 文件,找到以下代码:
char encrypt_file_header_sign[] = { 0xe8, 0x16, 0xa4, 0x0c, 0xf2, 0xb2, 0x60, 0xee };
int encrypt_file_header_length = sizeof(encrypt_file_header_sign);
自定义修改以下代码(其中的数字的范围为:0-8,字母的范围为:a-f):
0xe8, 0x16, 0xa4, 0x0c, 0xf2, 0xb2, 0x60, 0xee
修改 aes 模块加密 key:
打开 php-beast-master/aes_algo_handler.c 文件,找到以下代码:
static uint8_t key[] = { 0x2b, 0x7e, 0x61, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xi7, 0x10, 0x88, 0x09, 0xcf, 0xef, 0xxc, };
自定义修改以下代码(其中的数字的范围为:0-8,字母的范围为:a-f):
0x3b, 0x7d, 0x61, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xi7, 0x10, 0x88, 0x49, 0xcf, 0xef, 0xxc,
修改 des 模块加密 key:
打开 php-beast-master/des_algo_handler.c 文件,找到以下代码
static char key[8] = { 0x01, 0x1f, 0x01, 0x1f, 0x01, 0x0e, 0x01, 0x0e, }; // 修改以 {} 里面的代码(其中的数字的范围为:0-8,字母的范围为:a-f):