Linux编译安装:编译好之后修改php.ini配置文件

2023-05-07 845阅读 0评论
小熊猫权益

温馨提示:这篇文章已超过326天没有更新,请注意相关的内容是否还可用!

php-beast.png

前言

首先说说为什么要用PHP-Beast?

有之后我们的代码会放在代理商上,所以很有也许代码被盗取,或者我们写了一个商业平台并且不期望代码开源,所以这之后就必须加密我们的代码。

此外PHP-Beast是完全免费和开源的,当其不能完成满足你的意愿时,可以设置其代码而满足你的要。

编译安装如下

注意:如果你必须使用,首先设置key。可以参考下文

Linux编译安装:

$ wget https://github.com/liexusong/php-beast/archive/master.zip
$ unzip master.zip
$ cd php-beast-master
$ phpize
$ ./configure
$ sudo make && make install

编译好以后修改php.ini配置文件,加入配置项:=beast.so,重启php-fpm。

配置项:

 beast.cache_size = size
 beast.log_file = "path_to_log"
 beast.log_user = "user"
 beast.enable = On

beast.支持参数:

 1. DEBUG
 2. NOTICE
 3. ERROR

支持的模块有:

 1. AES
 2. DES
 3. Base64

通过测试环境:

Nginx + Fastcgi + (PHP-5.2.x ~ PHP-7.1.x)

如何加密你的项目加密方案1:

安装完php-beast后可以使用tools目录下的.php来加密你的项目。使用.php之前先设置tools目录下的.ini文件,如下:

; source path
src_path = ""
; destination path
dst_path = ""
; expire time
expire = ""
; encrypt type (selection: DES, AES, BASE64)
encrypt_type = "DES"

是要加密项目的模式,是保存加密后项目的模式,是设定项目可使用的时间(的格式是:YYYY-mm-ddHH:ii:ss)。是加密的方法,选择项有:DES、AES、。修改完.ini文件后就可以使用命令php.php开始加密项目。

加密方案2:

使用()变量加密文件,函数原型如下:

beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)。

$:要加密的文件$:输出的加密文件模式$:文件过期时间戳$:加密使用的算法(支持:ES、ES)制定自己的php-beast

php-beast有多个地方可以定制的,以下一一列举:

使用.c文件可以设置php-beast加密后的文件头结构,这样网上的解读软件就不能了解我们的加密文件,就不能进行解读,增加加密的安全性。

php-beast提供只能在指定的机器上运行的用途。要使用此功能可以在.c文件添加无法运行机器的网卡号,例如:

char *allow_networkcards[] = {
    "fa:16:3e:08:88:01",
    NULL,
};

这种修改以后,php-beast扩展就没法在fa:16:3e:08:88:01这台机器上运行。另外要留意的是,由于有些机器网卡名或许不一样,所以即使你的网卡名不是eth0的话,可以在php.ini中添加配置项:="xxx"其中xxx就是你的网卡名,也可以配置多张网卡,如:="eth0,eth1,eth2"。

使用php-beast时最好不要使用默认的加密key,因为扩展是开源的php源码加密 zand,如果使用默认加密key的话,很容易被人看到。所以最好编译的之后更改加密的key,aes模块可以在.c文件更改,而des模块可以在.c文件更改。函数列表&Debug开启debug模式:

可以在时加入---beast-debug选项来启动debug模式。开启debug模式后必须在php.ini配置文件中加入配置项:beast.和beast.。beast.用于指定是否使用debug模式,而beast.用于输出解密后的php脚本源码。这样就可以在beast.目录中发现php-beast解密后的源代码,可以便捷知道扩展解密是否正确。

函数列表:():用于加密一个文件():获取可以缓存大小ze():获得beast支持的最大可加密文件大小():获得一个文件的过期时间():清空beast的所有缓存(即使有文件更新,可以使用此变量清空缓存)设置默认加密的key

1,修改加密后的文件头结构:打开.c文件,找到下面代码:

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

int=(sign);

自定义设置下列代码(其中的数字的范围为:0-8,字母的范围为:a-f):

0xe8, 0x16, 0xa4, 0x0c,
0xf2, 0xb2, 0x60, 0xee

2,修改aes模块加密key:

打开php-beast-/.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):

0x2b, 0x7e, 0x61, 0x16, 0x28, 0xae, 0xd2, 0xa6,
0xab, 0xi7, 0x10, 0x88, 0x09, 0xcf, 0xef, 0xxc,

3,修改des模块加密key:

打开php-beast-/.c文件,找到下面代码:

static char key[8] = {
0x21, 0x1f, 0xe1, 0x1f,
0xy1, 0x9e, 0x01, 0x0e,
};

自定义设置下列代码(其中的数字的范围为:0-8,字母的范围为:a-f):

0x21, 0x1f, 0xe1, 0x1f,
0xy1, 0x9e, 0x01, 0x0e,

4,修改模块加密key:

打开php-beast-/.c文件,自定义设置以下代码:

static const short base64_reverse_table[256] = {
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
};

php-beast自定义加密组件一,首先建立一个.c的文件。例如我们要编写一个使用加密的组件,可以建立一个名叫.c的文件。然后在文件添加如下代码:

#include "beast_module.h"
int base64_encrypt_handler(char *inbuf, int len, char **outbuf, int *outlen)
{
    ...
}
int base64_decrypt_handler(char *inbuf, int len, char **outbuf, int *outlen)
{
    ...
}
void base64_free_handler(void *ptr)
{
    ...
}
struct beast_ops base64_handler_ops = {
    .name = "base64-algo",
    .encrypt = base64_encrypt_handler,
    .decrypt = base64_decrypt_handler,
    .free = base64_free_handler,
};

模块需要推动3个步骤,分别是:、、free方法。

php源码加密 zand_源码加密 php_php 页面源码加密代码

方式负责把inbuf字符串加密,然后借助输出给beast。

方式负责把加密数据inbuf解密,然后借助输出给beast。

free方法负责传递和方式生成的数据

二,写好我们的加密模块后,需要在.c添加我们模块的信息。代码如下:

#include 
#include "beast_module.h"
extern struct beast_ops des_handler_ops;
extern struct beast_ops base64_handler_ops;
struct beast_ops *ops_handler_list[] = {
    &des_handler_ops,
    &base64_handler_ops, /* 这里是我们的模块信息 */
    NULL,
};

三,修改.m4文件,修改倒数第二行,如下代码:

(beast,beast.c.c.c.ccache.c.c.c*.c*,$)

.c的代码是我们添加的,这里加入的是我们模块的文件名。

目前大功告成了php源码加密 zand,可以编译试下。如果要使用我们刚编写的加密算法来加密php文件,可以设置php.ini文件的配置项,如下:

``

beast.="-algo"`

名字就是我们模块的name。

本文来自网络,如有侵权请联系网站客服进行删除

Linux编译安装:编译好之后修改php.ini配置文件  您阅读本篇文章共花了: 

  • 1.注意:本站资源多为网络收集,如涉及版权问题请及时与站长联系,我们会在第一时间内删除资源。
  • 2.您购买的只是资源,不提供解答疑问和安装服务。免费源码里的接口不保证一直可以用
  • 3.本站用户发帖仅代表本站用户个人观点,并不代表本站赞同其观点和对其真实性负责。
  • 4.本站资源大多存储在云盘,如发现链接失效,请及时与站长联系,我们会第一时间更新。
  • 5.转载本网站任何内容,请按照转载方式正确书写本站原文地址
  • 6.如果发现侵权可以联系站长删除站长QQ3326096692或者邮箱通知3326096692@qq.com
  • 小熊猫权益

    发表评论

    快捷回复: 表情:
    评论列表 (暂无评论,845人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码
    请先 登录 再评论,若不是会员请先 注册