查看完整视频
小黑屋思过中,禁止观看!
评论并刷新后可见

您需要在视频最下面评论并刷新后,方可查看完整视频

积分观看

支付积分后查看完整视频

{{user.role.value}}
付费视频

支付完成后查看完整视频

¥{{user.role.value}}
专属视频

只允许以下等级用户查看该视频

升级
会员专享

视频选集

php代码 beast扩展加密教程第一课(详细教程)

  • 视频介绍
  • 视频选集
  • 交流讨论

众所周知,小编作为开发者,用php辛辛苦苦写的代码,结果被人拿走了,想更好的保护代码版权、代码版权保护机制哪该怎么保护呢?最近Vance在研究一款开源beast加密扩展,小编测试了,还不错因此小编出一期视频教程:php beast扩展加密(零基础视频教程加密第一课)

准备工作

加密测试坏境nginx1.22mysql5.6php7.1phpMyAdmin 5.2

github beast扩展加密开源网址https://github.com/liexusong/php-beast

开源beast加密扩展安装包https://github.com/liexusong/php-beast/archive/master.zip

Windows DLL扩展https://github.com/imaben/php-beast-binaries

命令安装

wget https://github.com/liexusong/php-beast/archive/master.zip //下载加密扩展安装包 

unzip master.zip //解压压缩包 

cd php-beast-master //进入加密扩展目录

自定义加密key秘钥:最好不要使用默认的加密key,因为扩展是开源的,如果使用默认加密key的话,很容易被人发现默认秘钥是很好破解的,因此我们首先需要从新自定义加密key秘钥(修改3~4个文件)

文件秘钥修改:Vance先跟科普一下需要修改哪些自定义秘钥以及怎么修改,Vance 记得是修改四个文件(当时小编就修改了四个文件)。

自定义加密秘钥修改

1、修改 header.c 文件改变php-beast加密后的文件头结构,防止网络流行的解密软件识别我们的加密php文件,增强安全性

2、修改aes_algo_handler.c 文件中的加密KEY,不要使用默认的加密key,因为此代码是开源代码,如果使用默认的key,相当于key公开了,没有任何的加密作用.

3、修改des模块加密key: des_algo_handler.c

4、修改base64模块加密key: base64_algo_handler.c

5、修改networkcard.c文件(这个小编觉得没用就没有修改)可以指定运行服务器的 网卡 MAC地址,这样加密后的php文件就只能在这些指定的服务器上运行了

6、base64_algo_handler.c 文件,小编没有修改过,因为小编没用这个 这个范围在应该在-1到256 之间 (小编觉得没必要设置这个 小编用不到base64加密),这里小编就先跳过这一步了 (无关紧要)

这里前三个文件16进制编码修改(a-f 数字范围0-8 随便即可) 范围内可取

修改完成自定义key秘钥后我们就可以执行以下编译命令了:

/////////////////////////以下命令确保已经修改默认key加密秘钥///////////////////

phpize   //用于准备 PHP 扩展进行编译

find / -name "php-config"      //先查找php版本 配置文件

./configure --with-php-config=    //后面再填写查找需要运行的php版本位置文件

//列如:./configure --with-php-config=/www/server/php/71/bin/php-config
//vance 在这里用的php7.1

sudo make && make install   // 安装 make 开始进行源代码编译

sudo make test

php -m //查看安装的扩展

编译好之后修改php.ini配置文件, 加入配置项: extension=beast.so, 重启php-fpm

文件加密

多文件加密

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

src_path = "jiami";加密前的项目路径

dst_path = "encode";加密后项目的保存路径

;小编在这里就不填写了 ,不填写代表没有时间限制
expire = "" ; expire time 加密到期时间 格式 列如:2099-05-30 23:59:00

encrypt_type = "ASE"; encrypt 加密方式 有三种:ASE、DES、BASE64(这里不推荐BASE64加密)

src_path是要加密项目的路径,dst_path 是保存加密后项目的路径,expire是设置项目可使用的时间 (expire 的格式是:YYYY-mm-dd HH:ii:ss)。

encrypt_type是加密的方式,选择项有:DESAESBASE64
修改完 configure.ini文件后就可以使用命令 php encode_files.php 开始加密项目。

单文件加密

php encode_file.php  --encrypt DES  --oldfile 1.php --newfile 22.php

这是单文件加密列如:

encrypt DES 是加密格式 可以修改成 encrypt ASE
--oldfile 后面是就需要加密的文件
--newfile 是加密后要保存的新文件

例如:

php encode_file.php  --encrypt AES  --oldfile b.php --newfile index.php

函数加密

使用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多版本加密扩展,vance已经找到解决方法下期视频再来详细讲解操作;谢谢观看!

    给TA打赏
    共{{data.count}}人
    人已打赏
    {{yiyan[0].hitokoto}}
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索