常见问题
关于原理、支持环境、安全边界与实际性能。回答尽量直接,包括那些「不好卖」的部分。
加密原理
- 加密后的文件长什么样?
- 仍然是一个 .php 文件,可以直接被 PHP 加载。文件内部是「桩代码 + 加密头 + 授权信息 + 密文 + 尾部校验」,由 phpvault.so 在 zend_compile_file 阶段解密后交给 PHP 编译。你的业务代码不需要任何 include/require 改动。
- 为什么必须装扩展?
- 解密发生在 PHP 扩展层(C 实现),而不是 PHP 代码层。这样做的原因有两个:一是不把解密逻辑暴露在 PHP 层(否则等于把钥匙和锁放在一起);二是性能接近零开销。
- 能防住 decompiler 吗?
- 没有任何方案能「绝对防住」,包括商业产品。我们能做的是:明文不落地、密钥不进交付物、每客户独立密钥、可选的强混淆与路径/域名/机器码绑定。这会把逆向成本抬到「不如重写一遍」的程度,但不等于不可破解。请不要把它当作绝对防护。
- 加密是不可逆的吗?
- 是。我们不保存明文,也无法从密文还原源码。请务必备份原始源码。
支持环境
- 支持哪些 PHP 版本?
- 7.4 / 8.0 / 8.1 / 8.2 / 8.3 / 8.4,仅 x86_64 的 NTS(非线程安全)构建。ZTS 与 ARM(含 Apple Silicon 上的 PHP)暂不支持。
- 和框架有关吗?
- 无关。Laravel、ThinkPHP、WordPress、CodeIgniter、自研框架都能用 —— 我们处理的是文件层面,不感知框架。
- 用什么文件会被加密?
- 默认只处理 .php / .phtml / .inc。模板、静态资源、配置文件原样保留(配置文件通常需要客户自己改,加密了反而没法用)。
- 加密后能热更新吗?
- 可以,但每次更新都要重新走一遍加密流程。已经加密的旧文件不会自动跟着变。
安全与隐私
- 你们能看到我的源码吗?
- 任务在 --network=none 的隔离容器里运行,源码只在内存文件系统中解压,容器退出即销毁,从不写宿主磁盘。上传包在任务结束后立即删除。运维层面能接触到的是运行日志与任务元数据(文件名、大小),不是文件内容。
- 共享版和独享版差在哪?
- 共享版是多个用户共用同一个密钥池,池内用户的 .so 原则上可以解开彼此的密文 —— 这一点在定价页明确写了。独享版为每个项目单独生成主密钥,只有你能解。
- 扩展会泄露密钥吗?
- 主密钥以 8 片异或分片的形式编译进 .so 的只读数据段,静态分析能还原出分片但需要额外的逆向工作。这是「抬高门槛」而非「绝对安全」。如果要求更高,独享版 + 密钥轮换是更合适的组合。
性能
- 会拖慢多少?
- 解密在 C 层完成,每次请求只解自身文件,实测开销通常在个位数百分比。强混淆会额外增加解析成本,具体幅度与代码规模有关。
- 和 opcache 兼容吗?
- 兼容。解密后的内容会正常进入 opcache,命中缓存后不再重复解密。
套餐与付款
- 套餐到期后加密的代码还能跑吗?
- 能。加密产物与扩展是永久的,到期只影响你能不能提交新任务、下载新产物。授权到期(如果设置了)是另一回事 —— 那是你主动加的运行时限制。
- 能开发票吗?
- 可以。付款后联系页脚的客服邮箱,提供订单号与开票信息。
- 怎么退款?
- 详见退款政策:7 天内且未提交过任务可全额退;已产生交付物的订单不退。
还有问题?
先看 使用文档,里面有多数问题的操作步骤。