php-beastPHP源码加密的模块,可以很好的保护你的代码

背景:在商用的情况下可能须要加密php源码

php-beast是一个PHP源码加密的模块,其使用DES算法加密,用户可以自定义加密的key来加密源代码,可以挺好的保护你的代码。主要应用情境有:1)代码放到虚拟主机上php源码本地安装教程php源码本地安装教程,有泄露源码的危险。2)商业保护,当项目须要收费时就可以加密你的代码不被更改。

选择收费的缺点是须要花钱,而且可能加密性好一点,在性能方面会好一点

700粉丝福利安排一波,工作中打算的,你们随意拿选择开源的优点不须要花钱,可能安全性或则性能比不上收费的

选择php-beast为php一个扩充,可以便捷快捷为php代码进行加密处理

有这几个特征

提供只能在指定的机器上运行的功能。要使用此功能可以在networkcards.c文件添加才能运行机器的网卡号

代码使用可以设置有效期,超过这个有效期代码就不能使用了

可以自定义更改默认的的秘钥,增强了被窃取的可靠性

源码:liexusong/php-beast可以参照文档

注意假如系统有多个php版本,安装方式有所不同,须要安装扩充到对应的php版本反例博客:多PHP版本共存的环境下安装Swoole到指定版本

Linux系统安装步骤1(注意须要root安装保证权限)

$ wget https://github.com/liexusong/php-beast/archive/master.zip
$ unzip master.zip
$ cd php-beast-master
$ phpize

图片[1]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

$ ./configure $ sudo make && make install

编译好以后更改php.ini配置文件(可能php.ini配置有cli和fpm)cli就命令行运行php,加入配置项:extension=beast.so,重启php-fpm

systemctl restart php-fpm

图片[2]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

加密方案步入php-beast-master/tool/目录配置configure.ini文件

#source path   
src_path = ""
#destination path 加密的php 放到的目录
dst_path = ""
#expire time 源码使用有效期
expire = "2021-02-13 14:48:12"
#encrypt type 加密类型 可以有 selection: DES, AES, BASE64

encrypt_type = "DES"

步入php-beast-master/tool/执行phpencode_files.php,加密后的结果

图片[3]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

可以订制更改默认的加密源码这个不容易给破解

更改加密后的文件头结构:打开header.c文件,找到以下代码:

char encrypt_file_header_sign[] = {
 0xe8, 0x16, 0xa4, 0x0c,
 0xf2, 0xb2, 0x60, 0xee
};

intencrypt_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):

加密前和加密后的时间的对比

测试工具ab,10个线程发起100次恳请

代码没有加密

$stime=microtime(true); //获取程序开始执行的时间
$a = 0;
for($i=0;$i<5000000;$i++){
 $a=$a*$i;
}
$etime=microtime(true);//获取程序执行结束的时间
$total=$etime-$stime;   //计算差值
echo "
[页面执行时间:{$total} ]秒";

在linux执行命令源码没有加密的情况

$ ab -n 100 -c 10 http://106.53.5.168:8800/testTime.php

结果一共使用了3.880秒

图片[4]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

加密后的代码

斤
 ¬`'檁
                                                  ²v|ⓡ_}ʁ«½¿aĹ稖g¼a¿u·q  3dSR    ¤1r¢zNu¡Vjq    ē7M ¤*[root@localhost public]# Xshell

在linux执行命令源码加密的情况

$ ab -n 100 -c 10 http://106.53.5.168:8800/testTimeEncode.php

结果是:使用了4.114秒,比没有加密的情况慢了0.3秒左右

图片[5]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

注意使用了php-beast以后性能不会增长,但是会有所提高。

主要诱因是php-beast缓存了解密后的代码,所以二次访问时不会再进行揭秘操作,所以会比原先读文件更快。另外设置较大的缓存效率会更好,可以通过beast.cache_size配置项来设置。

在php.ini文件降低缓存设置

beast.cache_size=100m

重启pfm

$ systemctl restart php-fpm

再度执行

$  ab -n 100 -c 10 http://106.53.5.168:8800/testTimeEncode.php

结果:执行结果是3.858秒比原先没有加密3.880快了0.03秒

图片[6]-php-beastPHP源码加密的模块,可以很好的保护你的代码-唐朝资源网

大厂必备笔试题,来拿吧!

以上内容希望帮助到你们,好多PHPer在进阶的时侯总会碰到一些问题和困局,业务代码写多了没有方向感,不晓得该从哪里入手去提高,对此我整理了一些资料,包括但不限于:分布式构架、高可扩充、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点中级进阶干货须要的可以免费分享给你们,须要的可以加入我的官方群点击此处。

© 版权声明
THE END
喜欢就支持一下吧
点赞246赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容