文档章节

用php-beast加密php代码

realm520
 realm520
发布于 2016/03/30 16:44
字数 788
阅读 306
收藏 0

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%以上的提升,大家有相关需求的可以试试。

© 著作权归作者所有

realm520
粉丝 9
博文 13
码字总数 25892
作品 0
南京
架构师
私信 提问
PHP-Beast V1.2 发布 (PHP源码加密模块)

此次更新主要修改: CLI模式禁用缓存功能, 因为CLI模式不需要缓存. 缓存不足时也可以正常运行. PHP-Beast是一个开源的PHP源码加密模块, 你可以使用他加密你的PHP源码而杜绝其他人查看你的PHP...

liexusong
2014/01/23
5.2K
13
php-beast v1.4 发布(PHP源码加密扩展)

php-beast v1.4 发布,改进内容如下: 1) 此次更新主要修改自旋锁导致CPU 100%的bug。 2) 增加加密文件时过滤注释和空白功能,更节省内存。 使用案例: http://www.beastcoder.com/ PHP Beas...

liexusong
2014/06/23
2.6K
17
php-beast windows 版本发布

此版本增加了缓存功能,在https://github.com/liexusong/php-beast/tree/master/win32 下有编译好的PHP5.2版本的dll文件,可以下载使用。另外,由于win版本加密后的文件跟linux版本加密的文件...

liexusong
2014/04/04
6.5K
20
php-beast V1.3 发布 (PHP源码加密模块)

php-beast V1.3 发布,这次更新主要是修改了include()和require()时运行失败的情况, 可以完美运行所有加密的程序. php-beast的使用案例: http://www.beastcoder.com/ PHP Beast是一个源码加密...

liexusong
2014/01/25
1K
17
PHP加密扩展 (php-beast) 1.5版本 常见问题解答

什么是php-beast? php-beast是一个PHP源码加密的模块,其使用DES算法加密,用户可以自定义加密的key来加密源代码,可以很好的保护你的代码。主要应用情景有:1) 代码放在虚拟主机上,有泄漏...

liexusong
2015/12/02
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

JAVA 编写redisUtils工具类,防止高并发获取缓存出现并发问题

import lombok.extern.slf4j.Slf4j;import org.springframework.data.redis.core.BoundHashOperations;import org.springframework.data.redis.core.BoundValueOperations;import org.......

huangkejie
35分钟前
5
0
JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
52分钟前
94
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
今天
5
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
今天
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部