php-beast

PHP 源码加密模块
授权协议 GPL
开发语言 PHP
所属分类 开发工具、 代码混淆和加密
软件类型 开源软件
地区 国产
投 递 者 阳德润
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

编译安装如下:


$ 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配置文件, 加入配置项: extension=beast.so, 重启php-fpm

温馨提示: 可以设置较大的缓存提高效率

使用php-beast的性能:

不使用php-beast的性能:

配置项:


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

支持的模块有:

1. AES
 2. DES
 3. Base64

通过测试环境:


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

注意

如果出现502错误,一般是由于GCC版本太低导致,请先升级GCC再安装本模块。

怎么加密项目

加密方案1

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

; source path
src_path = ""

; destination path
dst_path = ""

; expire time
expire = ""

; encrypt type (selection: DES, AES, BASE64)
encrypt_type = "DES"

src_path 是要加密项目的路径,dst_path 是保存加密后项目的路径,expire 是设置项目可使用的时间 (expire 的格式是:YYYY-mm-dd HH:ii:ss)。encrypt_type是加密的方式,选择项有:DES、AES、BASE64。 修改完 configure.ini 文件后就可以使用命令 php encode_files.php 开始加密项目。

加密方案2

使用beast_encode_file()函数加密文件,函数原型如下:
beast_encode_file(string $input_file, string $output_file, int expire_timestamp, int encrypt_type)

1. $input_file: 要加密的文件
2. $output_file: 输出的加密文件路径
3. $expire_timestamp: 文件过期时间戳
4. $encrypt_type: 加密使用的算法(支持:BEAST_ENCRYPT_TYPE_DES、BEAST_ENCRYPT_TYPE_AES)

制定自己的php-beast

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

1. 使用 header.c 文件可以修改 php-beast 加密后的文件头结构,这样网上的解密软件就不能认识我们的加密文件,就不能进行解密,增加加密的安全性。

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

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

这样设置之后,php-beast 扩展就只能在 fa:16:3e:08:88:01 这台机器上运行。另外要注意的是,由于有些机器网卡名可能不一样,所以如果你的网卡名不是 eth0 的话,可以在 php.ini 中添加配置项: beast.networkcard = "xxx" 其中 xxx 就是你的网卡名,也可以配置多张网卡,如:beast.networkcard = "eth0,eth1,eth2"

3. 使用 php-beast 时最好不要使用默认的加密key,因为扩展是开源的,如果使用默认加密key的话,很容易被人发现。所以最好编译的时候修改加密的key,aes模块 可以在 aes_algo_handler.c 文件修改,而 des模块 可以在 des_algo_handler.c 文件修改。

开启debug模式

可以在configure时加入 --enable-beast-debug 选项来开启debug模式。开启debug模式后需要在php.ini配置文件中加入配置项:beast.debug_path 和 beast.debug_modebeast.debug_mode 用于指定是否使用debug模式,而 beast.debug_path 用于输出解密后的php脚本源码。这样就可以在 beast.debug_path 目录中看到php-beast解密后的源代码,可以方便知道扩展解密是否正确。

函数列表

1. beast_encode_file(): 用于加密一个文件

2. beast_avail_cache(): 获取可以缓存大小

3. beast_support_filesize(): 获取beast支持的最大可加密文件大小

4. beast_file_expire(): 获取一个文件的过期时间

5. beast_clean_cache(): 清空beast的所有缓存(如果有文件更新, 可以使用此函数清空缓存)

  • 1 如果你只想让别人看不懂你的代码,你可可以使用代码混淆,让php代码失去可读性。混淆的代码能否被解密只取决于别人对你的代码的兴趣大小。 2 实现代码加密,并指定服务器上才能运行。只能依赖带php扩展形式PHP-Beast。带php扩展,代码解析速度几乎没有影响。而且解密难度特别高。 下载 §wget https://github.com/liexusong/php-beast/archive/m

  • 目录 1.安装 2.加密整个目录 1.安装 官方文档:https://github.com/liexusong/php-beast 注意事项 1.必须在php的ext目录下 安装master.zip 我的安装目录是 /usr/local/php/include/php/ext/ 2.可以将安装包下载以后上传到服务器 3.编译好之后修改php.ini配置文件, 加入配置项: extension=be

  • 1. 什么是php-beast? php-beast是一个PHP源码加密的模块,其使用DES算法加密,用户可以自定义加密的key来加密源代码,可以很好的保护你的代码。主要应用情景有:1) 代码放在虚拟主机上,有泄漏源码的危险。2) 商业保护,当项目需要收费时就可以加密你的代码不被修改。 2. 怎么安装php-beast扩展? $ wget https://github.com/liexusong/

  • 参考网址: GitHub - liexusong/php-beast: PHP source code encrypt module (PHP源码加密扩展) php-beast 加密 和 解密 详解_哈二王的博客-CSDN博客_php-beast https://www.jianshu.com/p/3fa50bbef813 PHP-Beast 加密你的PHP源代码 - 腾讯云开发者社区-腾讯云 操

  • vim beast.c 124 line: zend_module_entry beast_module_entry = { 2 #if ZEND_MODULE_API_NO >= 20010901 1     STANDARD_MODULE_HEADER, 0 #endif 1     “beast”, //扩展名  在phpinfo中显示的扩展名 可随意修改,迷惑作用 2     beast_

  • Linux环境编译安装: wget https://github.com/liexusong/php-beast/archive/master.zip unzip master.zip cd php-beast-master phpize ./configure --with-php-config=/www/server/php/70/bin/php-config(注意这个等于号后面

  • 下载源码 wget https://github.com/liexusong/php-beast/archive/master.zip 解压 unzip master.zip 进入源码目录 cd php-beast-master 修改自定义文件头header.c char encrypt_file_header_sign[] = { 0xe8, 0x16, 0xa4, 0x0c

 相关资料
  • 我创建了一个micronaut应用程序,它可以通过jdbc模板访问多个数据源。 这将使用: 问题是我想以某种方式解密来自配置的密码。我的第一次尝试是“替换”工厂正在使用的bean,但没有运气,它给了我一个没有意义的错误(io.micronaut.context.exceptions.DependencyInjtionExctive)。 以下是我的替换尝试: 知道我做错了什么吗??谢谢 答:必须按照

  • 本文向大家介绍详解 PHP加密解密字符串函数附源码下载,包括了详解 PHP加密解密字符串函数附源码下载的使用技巧和注意事项,需要的朋友参考一下 项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理。 下面先给大家展示下效果图,感兴趣的朋友继续阅读全文。 效果演示     源码下载 笔者收录

  • 本文向大家介绍PHP加密解密类实例代码,包括了PHP加密解密类实例代码的使用技巧和注意事项,需要的朋友参考一下 关键代码如下所示: 以上所述是小编给大家介绍的PHP加密解密类实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 问题内容: 我已经以加密格式将用户密码存储在数据库中。但是,现在,当用户想要登录并尝试输入其原始密码时,该代码始终会将输入的(原始)密码与数据库中存储的加密版本进行比较,从而导致登录失败。 请告诉我如何比较输入的(原始)密码和存储在数据库中的加密密码。 问题答案: 几乎可以肯定,您应该对密码进行 哈希处理 ,而不是使用可逆加密。您可能还需要 用盐 来做…在这种情况下,正确的步骤是: 查找最初对密码

  • 在FTPS中,密码在尝试通过internet连接服务器时被加密。这就是我所理解的,如果我的理解有任何遗漏,请更正。我的问题是,当我厌倦了模拟它(FTPs和FTP)时,我只是得到一条消息,说SSL已经建立(以及基于隐式和显式调用的端口更改)。 是否有任何其他方式来确认密码是真正加密的,或者我们可以看到密码时,它的普通FTP。下面是我在服务器端看到的日志 启用FTP时的服务器日志- 状态:TLS/SS

  • cmf_password($pw, $authCode = '') 功能 CMF密码加密方法 参数 $pw: string 要加密的原始密码 $authCode: string 加密字符串 返回 string 加密后的密码 例子 echo cmf_password('666666');

  • 本文向大家介绍php用户密码加密算法分析【Discuz加密算法】,包括了php用户密码加密算法分析【Discuz加密算法】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php用户密码加密算法。分享给大家供大家参考,具体如下: 今天在拿Discuz进行二次开发时需要在代码里验证Discuz的用户名密码,结果不小心掉进了坑里,因为Discuz的论坛有两张表来存储用户数据,一张在Discuz的

  • 问题内容: 我找到了在PHP中对字符串进行编码/解码的示例。起初它看起来非常好,但是不会起作用:-( 有人知道问题出在哪里吗? 结果是: 加密: 解密: 问题答案: 并且 在您的代码中未定义。查看有效的解决方案( 但不安全! ): 停! 这个例子是 不安全的! 不要使用它! **但是此代码中还有其他问题,使其变得不安全,尤其是使用ECB(这不是_加密_模式,只能在其上定义加密模式的构造块)。