PHP7代码加密扩展的示例分析

一个简洁、高性能、跨平台的 PHP7 代码加密扩展

源码地址:GitHub

特点

  • 简单快速,经实测,几乎不影响性能

  • 兼容 OPcache、Xdebug 等其他扩展

  • 支持 Linux、macOS、Windows 等系统

  • 兼容 Apache、Nginx + PHP-fpm、命令行等运行模式

  • 加密算法较简单,这是出于速度考虑,但仍不易解密

  • 若项目的 php 文件很多,可只加密部分重要代码

  • 要求 PHP >= 7.0

安装

编译前请在 core.h 中做如下修改:

/* 这里定制你的加密特征头,不限长度,十六进制哦 */
const u_char tonyenc_header[] = {
        0x66, 0x88, 0xff, 0x4f,
        0x68, 0x86, 0x00, 0x56,
        0x11, 0x16, 0x16, 0x18,
};

/* 这里指定密钥,设置长一些更安全 */
const u_char tonyenc_key[] = {
        0x9f, 0x49, 0x52, 0x00,
        0x58, 0x9f, 0xff, 0x21,
        0x3e, 0xfe, 0xea, 0xfa,
        0xa6, 0x33, 0xf3, 0xc6,
};

在 Linux、macOS 上编译

git clone https://github.com/lihancong/tonyenc.git
cd tonyenc
phpize
./configure
make

将编译好的文件 modules/tonyenc.so 加入到配置项 extension=tonyenc.so ,重启 PHP 服务

在 Windows 上编译

已编译了以下模块,可供测试(需要 VC14 运行库):

# php7.0 64位 线程安全版
php_tonyenc_php70_ts_VC14_x64.dll
# php7.0 64位 线程非安全版
php_tonyenc_php70_nts_VC14_x64.dll

手动编译方法

加密

代码中的 tonyenc.php 是加密工具:

php tonyenc.php example.php dir/

这样即可加密 example.phpdir 目录下的所有 php 文件,PHP 在运行它们时会自动解密,够简单吧!

原创文章,作者:GWXVD,如若转载,请注明出处:http://www.wangzhanshi.com/n/8260.html

(0)
GWXVD的头像GWXVD
上一篇 2025年1月1日 16:43:01
下一篇 2025年1月1日 16:43:03

相关推荐

  • php7新特性之返回类型声明的使用案例

    突然感觉,php逐渐走向强类型语言了,和java、c++这类强类型语言有越来越相似了。在使用 PHP7 的时候,会发现在 PHP7 中包含了一个新的功能,即返回类型声明。返回类型声…

    php 2025年1月1日
  • php7显示错误

    1.vim查找php.ini中的display_errors,设置On,保存退出2.命令行执行 # killall php-fpm3.重启php-fpm

    php 2025年1月1日
  • PHP7.2源码安装

    php有什么特点 1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类和对象。5、版本更新速度快。6、具有丰富的…

    2025年1月1日
  • 解决织梦在PHP7上安装模块时模块包含文件为空的问题

    织梦在PHP7上安装模块时模块包含的文件为空怎么办? 织梦在PHP7上安装模块时模块包含的文件为空的解决方法 推荐学习:织梦cms 织梦运行在PHP7以上版本时,安装插件时,显示模…

    2025年1月1日
  • php实现简单路由实现伪静态

    伪静态作用 增强搜索引擎的友好性:通过改变动态的网页的URL,使之看起来像静态网页,伪静态技术有助于提高网站在搜索引擎中的表现,使网站内容更易被搜索引擎抓取和索引。 提升用户信任度…

    php 2024年12月17日
  • 详解php如何解密json字符串

    php如何解密json字符串 解密JSON字符串在PHP中并不常见,因为JSON通常用于数据交换,并不需要加密。但如果您是指从一个经过加密的JSON字符串中解密数据,那么这通常涉及…

    php 2024年12月17日
  • PHP7内核剖析之I/O模型有哪些

    1.同步:我客户端(C端调用者)一个功能,该功能没有结束前,我死等结果。 2.异步:我(c端调用者)调用一个功能,不知道该功能结果,该功能有结果后通知我,即回调通知 3.阻塞:就是…

    2025年1月1日
  • 使用systemd设置PHP程序为服务的配置步骤

    背景 假设我们有一个基于 PHP 的 Web 应用或脚本,需要在后台运行并且能够自动重启。通过配置 systemd,我们可以轻松实现以下目标: 启动时自动加载 PHP 应…

    php 2024年12月17日
  • 使用PHP和Redis实现消息队列功能

    前言 今天,我们继续讲消息队列,如何使用Redis实现消息队列的功能。 前期准备,需要安装好docker、docker-compose的运行环境。 PHP的项目运行环境可以参考下面…

    2024年12月17日
  • PHP7的性能测试工具介绍

    1、Blackfire Blackfire Profiler Fire up your PHP App Performance翻译过来就是清晰的展示你的应用性能。这个工具很强大,真…

    php 2025年1月1日

发表回复

登录后才能评论