您的位置:首页 > 编程语言 > PHP开发

用php-beast加密php代码

2016-03-30 00:00 288 查看

PHP-Beast介绍

PHP-Beast是一个PHP的模块,用于对PHP源代码进行加密。
项目的地址是:https://github.com/liexusong/php-beast

安装

我的测试主机是Debian 8。

Distributor ID: Debian
Description:    Debian GNU/Linux 8.3 (jessie)
Release:        8.3
Codename:       jessie


首先用apt-get安装了php5和php5-dev软件包。

然后直接从该项目的主页照搬步骤:

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

安装完成以后在/usr/lib/php5/20131226/下面有个beast.so。
3. 然后在php的配置文件中添加该扩展。

对于我的Debian8来说,就是在/etc/php5/mods-available/下面新建一个10-beast.ini文件,内容就一行:
```

extension=beast.so

然后在/etc/php5/cli/conf.d和/etc/php5/apache/conf.d下面分别建立一个名字相同的软链接指向刚才哪个10-beast.ini。

# 使用
现在就可以试一下了。网上有个教程里提到的encrypt_project.php文件,我没有找到。但是在刚才的php-beast-master目录下有个**encode_files.php**文件,可以用来加密PHP文件。我们来测试一下。
* 首先建立一个test_php的目录,然后拷贝一个index.php到这个目录下。
* 运行以下命令:

php php-beast-master/encode_files.php test_php/ encrypted_php

* 然后检查一下encrypted_php/index.php,已经变成乱码了。

命令行上我们已经试过了,那么在服务器上应该如何使用呢?其实服务器上比较简单。

![输入图片说明](https://static.oschina.net/uploads/img/201603/30170956_9IHP.png "使用示例")

看一下上面的图,我们一般在build机器上加密好代码,然后在服务器上直接部署加密过的代码就可以直接运行。当然部署服务器也要安装同一份编译出来的beast.so并启用该扩展。

# 其他
## 关于key
大家应该都知道,加密解密都是要一个key的,那么PHP-Beast的key放在哪里呢?目前这个key是在代码里的,因此要在编译该模块前修改。打开
php-beast-master/key.c看一下就明白了:

root@10-10-109-105:~# cat php-beast-master/key.c

/+--------------------------------------+
| The encrypt key must be 8 characters |
| You can edit this key for yourself |
| ==================================== |
| example: |
| ------------------------------------ |
| char __authkey[8] = { |
| 'A', 'B', 'C', 'D', |
| 'E', 'F', 'G', 'H' |
| } |
+--------------------------------------+/

char __authkey[8] = {
0x01, 0x1f, 0x01, 0x1f,
0x01, 0x0e, 0x01, 0x0e
};

记住改完重新编译以后要同时更新到build主机和部署主机。

## encode_files.php的缺点
这个文件能够自动的把源代码目录下的所有php文件加密,并以同样的结构放到输出目录下。但是这个脚本有两个问题:
* 源目录下的文件被拷贝到输出目录下以后,文件的执行权限会消失。因此在打包输出目录下的文件之前,最好检查一下文件的权限。
* 有些情况下加密会失败,此时输出目录下会缺少这些文件。请自行拷贝过去。至于为什么会失败,我没有去查,如果哪位有碰到这个情况并解决了,可以告诉我一下。

## 几个配置项

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

根据该项目官方主页的说法,beast的cache能加快代码的执行。从数据来看
3ff0
有10%以上的提升,大家有相关需求的可以试试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php web