JS混淆加密

JavaScript混淆加密工具,可以通过代码混淆的方式,让JS源码更难理解,不被他人复制抄袭,保护您的JS代码安全性。

混淆加密配置


一键配置


基础配置


* 标识符:指代码中的变量名、函数名等

字符串设置

附加设置

JAVASCRIPT代码混淆工具配置说明


压缩成一行 将换行符及空格等进行压缩,如果需要进行调试,可以禁用。
简化代码结构

通过移除不必要的结构和优化代码来简化代码。

防止格式化
此选项对性能的影响最大为运行速度降低1.5倍。

启用代码控制流平整。控制流扁平化是源代码的结构转换,它阻碍了程序的理解。

防止格式化系数


在较大的代码库中,建议降低此值,因为大量的控制流转换会增加代码的大小并减慢其速度(从0到1)。

花指令注入
此选项极大地增加了混淆代码的大小(最多200%)。

此功能将混淆代码的随机块(将不执行的代码)添加到混淆后的输出中,从而更难进行反向工程。

花指令注入系数


您可以使用此设置来调整该选项影响节点的概率(从0到1)。

混淆对象属性名

重命名对象属性名,使代码更难理解。

使用安全模式以避免代码错误。不安全模式可能导致运行时错误。

混淆全局变量和函数名

重命名全局变量和函数名,隐藏其用途。

如果全局变量被外部引用,可能会破坏代码。

保留的变量名

指定不应混淆的变量名(例如 ^someVariable 或正则表达式)。

适用于保留关键变量名。

标识符名称生成规则

设置混淆后变量名的生成规则(例如十六进制、字典模式、简化模式)。

十六进制:生成使用十六进制图案随机标识符的名称(如:0xabc123),简化模式:使用短字符名称 (如: a, b, c等等)。

标识符前缀

为所有混淆后的标识符添加前缀(例如 a_)。

可选。适用于多文件项目以避免冲突。

标识符字典

提供混淆后标识符的自定义名称列表(每行一个)。

仅在标识符名称生成规则中选择字典模式时生效。

字符串数组化

将字符串提取到数组中并用引用替换。

默认启用。如果性能是关键,可以禁用。

字符串数组化比率

设置字符串被添加到数组中的概率(0到1)。

默认:0.75。较低的值会降低混淆强度但提高性能。

字符串数组旋转

随机偏移字符串数组以隐藏字符串顺序。

默认启用。禁用可提高性能。

字符串数组乱序

随机打乱字符串数组以增加重构难度。

默认启用。禁用可提高性能。

字符串数组索引偏移

为字符串数组索引添加随机偏移以隐藏访问模式。

默认启用。禁用可提高性能。

字符串数组索引类型

设置字符串数组索引的格式(例如十六进制数或字符串)。

默认:十六进制数。选择十六进制数值字符串可增强混淆强度。

转换字符串数组调用

转换对字符串数组的调用以增加检测难度。

需要设置转换字符串数组调用比率(默认:0.5)。

字符串数组封装数量

设置字符串数组的封装层数。

默认:1。增加层数可增强混淆强度但降低性能。

字符串数组封装类型

设置封装类型(例如 变量 或 函数)。

选择函数可增强混淆强度但降低性能。

字符串数组封装参数最大数量

设置字符串数组封装的最大参数数量。

默认:2。增加数量可增强混淆强度但降低性能。

字符串数组链式调用

启用字符串数组封装之间的链式调用。

默认启用。禁用可提高性能。

字符串数组编码类型

使用 base64 或 rc4 编码字符串数组值。

选择rc4可增强混淆强度但降低性能。

拆分字符串

将字符串拆分为指定长度的块以隐藏内容。

设置拆分字符串的块长度控制块大小(默认:10)。

Unicode转义序列

转换混淆对象键。

将所有字符串转换为它们的unicode表示形式。例如,字符串"Hello World!"将被转换为"'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21"。

此转换非常容易还原,并且将大大增加混淆的代码大小。不建议在较大的代码库中使用。

强制转换字符串

强制转换特定字符串(例如 ^some *string *or RegExp)。

适用于针对特定字符串进行混淆。

保留的字符串

指定不应转换的字符串(例如 ^some *string *or RegExp)。

适用于保留关键字符串。

数字转换为表达式

将数字转换为算术表达式以隐藏其值。

可能增加代码大小并降低性能。

转换Object的Key值

混淆对象键值以增加代码理解难度。

如果对象键值被外部引用,可能会破坏代码。

禁用控制台输出

禁止使用console.log,console.info,console.error和console.warn,这使得调试器的使用更加困难。

适用于生产环境。

自我防御

如果代码被格式化或修改,使其无法运行。

强制启用 压缩成一行 模式。使用时需谨慎。

调试保护
如果打开开发人员工具,则可以冻结浏览器。

使用该选项,几乎不可能使用开发人员工具的控制台选项卡(在Google Chrome和Mozilla Firefox上)。

调试保护间隔


如果选中该选项,则会使用一个时间间隔在“控制台”选项卡上强制使用调试模式,从而使开发人员工具的其他功能难以使用。

在经过混淆的源代码中会插入一个反复调用的特殊代码进行运作。

忽略Import

防止混淆 import 语句。

适用于保留模块导入。

目标运行环境

设置混淆代码的目标环境(例如浏览器、Node.js)。

选择浏览器(不使用eval函数)以避免使用eval。

随机种子

默认情况下(seed = 0),每次对代码进行混淆时,都会得到一个新的结果(即:不同的变量名,插入到中的不同变量 stringArray等)。如果要获得可重复的结果,请将设置seed为特定的整数。

白名单域名

限制代码仅在指定域名下运行(例如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模式为分离时必须设置。