用php-beast加密php代码

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
  1. 首先用apt-get安装了php5和php5-dev软件包。
  2. 然后直接从该项目的主页照搬步骤:
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能加快代码的执行。从数据来看有10%以上的提升,大家有相关需求的可以试试。

转载于:https://my.oschina.net/tz8101/blog/649957

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值