JavaScript 混淆加密
防止格式化系数:
花指令注入系数:
混淆对象属性名模式:
保留的变量名:
标识符名称生成规则:
* 标识符:指代码中的变量名、函数名等
标识符前缀:
标识符字典:
字符串数组化比率:
字符串数组索引类型:
转换字符串数组调用比率:
字符串数组封装数量:
字符串数组封装类型:
字符串数组封装参数最大数量:
字符串数组编码类型:
拆分字符串的块长度:
强制转换字符串:
保留的字符串:
调试保护间隔 (ms):
目标运行环境:
随机种子:
白名单域名:
非白名单域名自动跳转 URL:
Source Map 模式:
Source Map 基础 URL:
Source Map 文件名:
配置项 | 说明 | 备注 |
---|---|---|
压缩成一行 | 将混淆后的代码压缩为一行,减少可读性,增加调试难度。 | 如果需要进行调试,可以禁用。 |
简化代码结构 | 通过移除不必要的结构和优化代码来简化代码。 | 在复杂脚本中禁用可能导致代码错误。 |
防止格式化 | 添加反格式化措施,使代码难以美化或重新格式化。 | 需要设置 防止格式化系数 (默认:0.75)。 |
花指令注入 | 注入死代码(不可达代码)以迷惑逆向工程师。 | 需要设置 花指令注入系数 (默认:0.4)。 |
混淆对象属性名 | 重命名对象属性名,使代码更难理解。 | 使用 安全 模式以避免代码错误。不安全 模式可能导致运行时错误。 |
混淆全局变量和函数名 | 重命名全局变量和函数名,隐藏其用途。 | 如果全局变量被外部引用,可能会破坏代码。 |
保留的变量名 | 指定不应混淆的变量名(例如 ^someVariable 或正则表达式)。 | 适用于保留关键变量名。 |
标识符名称生成规则 | 设置混淆后变量名的生成规则(例如十六进制、字典模式、简化模式)。 | 十六进制:生成使用十六进制图案随机标识符的名称(如:0xabc123),简化模式:使用短字符名称 (如: a, b, c等等)。 |
标识符前缀 | 为所有混淆后的标识符添加前缀(例如 a_ )。 | 可选。适用于多文件项目以避免冲突。 |
标识符字典 | 提供混淆后标识符的自定义名称列表(每行一个)。 | 仅在 标识符名称生成规则 中选择 字典模式 时生效。 |
字符串数组化 | 将字符串提取到数组中并用引用替换。 | 默认启用。如果性能是关键,可以禁用。 |
字符串数组化比率 | 设置字符串被添加到数组中的概率(0 到 1)。 | 默认:0.75。较低的值会降低混淆强度但提高性能。 |
字符串数组旋转 | 随机偏移字符串数组以隐藏字符串顺序。 | 默认启用。禁用可提高性能。 |
字符串数组乱序 | 随机打乱字符串数组以增加重构难度。 | 默认启用。禁用可提高性能。 |
字符串数组索引偏移 | 为字符串数组索引添加随机偏移以隐藏访问模式。 | 默认启用。禁用可提高性能。 |
字符串数组索引类型 | 设置字符串数组索引的格式(例如十六进制数或字符串)。 | 默认:十六进制数 。选择 十六进制数值字符串 可增强混淆强度。 |
转换字符串数组调用 | 转换对字符串数组的调用以增加检测难度。 | 需要设置 转换字符串数组调用比率 (默认:0.5)。 |
字符串数组封装数量 | 设置字符串数组的封装层数。 | 默认:1。增加层数可增强混淆强度但降低性能。 |
字符串数组封装类型 | 设置封装类型(例如 变量 或 函数 )。 | 选择 函数 可增强混淆强度但降低性能。 |
字符串数组封装参数最大数量 | 设置字符串数组封装的最大参数数量。 | 默认:2。增加数量可增强混淆强度但降低性能。 |
字符串数组链式调用 | 启用字符串数组封装之间的链式调用。 | 默认启用。禁用可提高性能。 |
字符串数组编码类型 | 使用 base64 或 rc4 编码字符串数组值。 | 选择 rc4 可增强混淆强度但降低性能。 |
拆分字符串 | 将字符串拆分为指定长度的块以隐藏内容。 | 设置 拆分字符串的块长度 控制块大小(默认:10)。 |
使用 Unicode 转义序列 | 将字符串转换为 Unicode 转义序列以隐藏内容。 | 会显著增加代码大小。仅适用于小型脚本。 |
强制转换字符串 | 强制转换特定字符串(例如 ^some *string *or RegExp )。 | 适用于针对特定字符串进行混淆。 |
保留的字符串 | 指定不应转换的字符串(例如 ^some *string *or RegExp )。 | 适用于保留关键字符串。 |
数字转换为表达式 | 将数字转换为算术表达式以隐藏其值。 | 可能增加代码大小并降低性能。 |
转换 Object 的 Key 值 | 混淆对象键值以增加代码理解难度。 | 如果对象键值被外部引用,可能会破坏代码。 |
禁用控制台输出 | 在混淆后的代码中禁用 console.log 等函数。 | 适用于生产环境。 |
自我防御 | 如果代码被格式化或修改,使其无法运行。 | 强制启用 压缩成一行 模式。使用时需谨慎。 |
调试保护 | 通过无限循环或崩溃阻止调试。 | 设置 调试保护间隔 控制保护频率(建议设置为2000~4000毫秒)。 |
忽略 Import | 防止混淆 import 语句。 | 适用于保留模块导入。 |
目标运行环境 | 设置混淆代码的目标环境(例如浏览器、Node.js)。 | 选择 浏览器(不使用 eval 函数) 以避免使用 eval 。 |
随机种子 | 设置随机种子以生成可重复的混淆结果。 | - |
白名单域名 | 限制代码仅在指定域名下运行(例如 www.example.com )。 | 可指定多个域名,每行一个。 |
非白名单域名自动跳转 URL | 指定在非白名单域名下运行时跳转的 URL。 | 默认:about:blank 。 |
启用 Source Map | 生成 Source Map 以调试混淆后的代码。 | 适用于调试,但可能暴露原始代码结构。 |
Source Map 模式 | 设置 Source Map 生成模式(例如内联或分离文件)。 内联——在混淆代码的末尾添加source map; 分离——使用独立的source Map文件 //# sourceMappingUrl=file.js.map。 | 选择 内联 简化操作,或选择 分离 用于生产环境。 |
Source Map 基础 URL | 设置 Source Map 文件的基础 URL(例如 http://localhost:3000 )。 | 在 Source Map 模式 为 分离 时必须设置。 |
Source Map 文件名 | 设置 Source Map 文件的名称(例如 example )。 | 在 Source Map 模式 为 分离 时必须设置。 |