用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%以上的提升,大家有相关需求的可以试试。
相关文章推荐
- 一个关于if else容易迷惑的问题
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法