{literal}{/literal}
功能说明
支持 ionCube Encoder v13/v14/v15 全部功能
支持 zip、tar、gz、tgz、bz2 压缩格式,最大 100MB
文件名不能包含中文字符,建议使用英文和数字
加密后的文件需要安装对应版本的 ionCube Loader 才能运行
宝塔面板可在 PHP 扩展中一键安装 ionCube Loader
加密文件数量限制:单次最多 100 个 PHP 文件
编码器版本对照
版本
代号
支持的 PHP 版本
v15.0
C
4, 5.x, 7.x, 8.1, 8.2, 8.3, 8.4
v14.0
L
4, 5.x, 7.x, 8.1, 8.2, 8.3
v13.0
O
4, 5.x, 7.x, 8.1, 8.2
许可证系统说明
许可证模式与过期时间/服务器限制功能互斥,不能同时使用
生成许可证时的密码短语必须与加密时设置的完全一致
域名限制支持通配符格式,如 *.example.com
IP 限制支持单个地址、范围格式 (192.168.1.1-10) 和 CIDR 格式 (192.168.1.0/24)
代码混淆说明
混淆会重命名类名、方法名、函数名、局部变量等标识符
混淆后的代码更难被逆向分析,但不影响正常运行
使用反射或动态调用的代码可能需要排除相关标识符
混淆密钥用于生成一致的混淆结果,相同密钥产生相同的混淆名称
Loader 安装说明
ionCube Loader 是运行加密文件的必要组件
Loader 版本需要与 PHP 版本匹配
官方下载地址:
ioncube.com/loaders.php
安装后需要在 php.ini 中添加 zend_extension 配置
代码加密
生成许可证
编码器版本 (encoder_version)
选择 ionCube Encoder 的版本,不同版本支持的 PHP 版本范围不同。默认使用 IC15PRO(底层混淆 + ionCube v15),安全性最高;需上传 ZIP 包。
PHP 版本 (php_version)
选择目标服务器运行的 PHP 版本。加密后的代码只能在相同或更高版本的 PHP 环境中运行。
输出格式 (output_format)
ASCII 格式兼容性更好,适合大多数场景;Binary 格式文件体积更小,但可能在某些环境下存在兼容性问题。
头部注释 (header_comment)
在加密文件头部添加的注释信息,通常用于标识版权或加密工具信息。
代码混淆 (obfuscation)
对代码中的标识符进行混淆处理,增加逆向工程的难度。混淆密钥用于生成一致的混淆结果,留空将自动生成随机密钥。
启用代码混淆
混淆类名、方法名、函数名、局部变量和行号信息
混淆密钥 (obfuscation_key)
时间限制 (expiry)
设置加密文件的有效期。可以使用相对时间(如30天后过期)或绝对日期。启用许可证系统后此选项将被忽略。
启用过期时间
文件过期后将无法运行
相对过期时间 (expire_in)
绝对过期日期 (expire_on)
服务器限制 (server)
限制加密文件只能在指定的服务器上运行。支持域名(含通配符)和 IP 地址(含 CIDR 格式)。启用许可证系统后此选项将被忽略。
启用服务器限制
限制代码只能在指定域名或 IP 的服务器上运行
允许的域名 (domains) - 每行一个,支持 *.example.com 通配符
允许的 IP 地址 (ips) - 每行一个,支持 CIDR 格式如 192.168.1.0/24
许可证系统 (license)
启用许可证验证后,加密文件需要配合有效的许可证文件才能运行。许可证可以包含过期时间、服务器限制等信息,比直接在代码中设置更灵活。
启用许可证验证
启用后,时间限制和服务器限制将由许可证控制
注意:启用许可证系统后,上方的时间限制和服务器限制选项将被忽略,这些限制将由许可证文件控制。
许可证文件名 (license_filename)
密码短语 (passphrase) - 生成许可证时必须使用相同的密码
检查模式 (check_mode)
高级选项 (advanced)
优化级别越高,生成的代码执行效率越好,但编译时间也会相应增加。
优化级别 (optimize)
移除文档注释 (no_doc_comments)
移除代码中的 PHPDoc 注释,减小文件体积
IC15PRO 参数配置
底层混淆在上传文件时执行,改动参数后需重新上传。
一键预设:
均衡(默认)
体积优先
极限瘦身
当前:均衡
重复混淆轮数 (jm_deep)
重复混淆轮数(1-3),轮数越多越难逆向,处理耗时也越长
字符串加密 (jm_strings)
加密代码中的字符串常量
长字符串压缩 (jm_string_gzip)
长字符串先压缩再加密
数字混淆 (jm_numbers)
混淆代码中的数字常量
局部变量/参数改名 (jm_idents)
重命名局部变量与函数参数
标识符风格 (jm_ident_style)
garbage - CJK 乱码(默认)
alpha - 字母
zero - 零宽字符
改名后的标识符风格:garbage(默认,CJK 乱码)/ alpha(字母)/ zero(零宽字符)
顶层变量改名 (jm_idents_global)
顶层变量改名——会打断跨文件隐式契约,默认必须关
花指令 (jm_deadcode)
默认关:占产物约 28% 体积,保护价值最低
插入永不执行的死代码
花指令强度 (jm_deadcode_level)
花指令强度(0-3),数值越大插入越多
不透明谓词 (jm_opaque)
插入恒真/恒假判断,干扰静态分析
控制流平坦化 (jm_flow)
把顺序执行改写成 switch 状态机
平坦化阈值 (jm_flow_min)
触发平坦化的最小语句数(2-64)
函数重构 (jm_restructure)
把语句段抽成闭包,打散原有结构
重构片段上限 (jm_restructure_max)
每个作用域最多抽出几个片段(0-20)
重构搬运语句数 (jm_restructure_chunk)
每次最多搬几条语句(1-16)
密钥托管 (jm_secret)
至少 8 位(8–200 位单行文本)。填了即启用云端密钥托管:产物不含密钥、运行时可吊销;留空则密钥内联。填错/太短会被托管服务拒绝,产物退回「密钥内联、不可吊销」
离线水印 (jm_watermark)
离线水印标识,用于追溯。仅在 jm_secret 留空时生效(填了密钥托管后由云端密钥接管)
自解密外壳 (jm_shell)
自解密外壳,只有配合 jm_secret 才值得开
外壳层数 (jm_shell_stages)
1 - 单层 eval
2 - 双层(默认)
外壳层数:1 / 2,默认 2
产物头部注释 (jm_comment)
产物头部注释,留空则不写
上传文件
选择要加密的压缩包文件,支持 zip、tar、gz、tgz、bz2 格式。
点击或拖拽文件到此处上传
支持 zip, tar, gz, tgz, bz2 格式,最大 100MB
文件名称
-
PHP 文件数
-
加密费用
-
开始加密
密码短语 (passphrase)
生成许可证时使用的密码短语,必须与加密代码时设置的密码短语完全一致,否则许可证将无法验证通过。
服务器限制
限制许可证只能在指定的服务器上使用。域名支持通配符格式(如 *.example.com),IP 支持 CIDR 格式(如 192.168.1.0/24)。
允许的域名 (domains) - 每行一个
允许的 IP 地址 (ips) - 每行一个
过期时间
设置许可证的有效期。可以使用相对时间或绝对日期,许可证过期后加密代码将无法运行。
相对过期时间 (expire_in)
绝对过期日期 (expire_on)
自定义属性 (properties)
在许可证中嵌入自定义属性,可以在 PHP 代码中通过 ionCube Loader API 读取这些属性值,用于实现更复杂的授权逻辑。
属性列表 - 每行一个,格式: name=value
头部信息 (header_lines)
在许可证文件头部添加的自定义文本行,通常用于显示授权信息、联系方式等。
头部行 - 每行一个
生成许可证
{literal} {/literal}