程序员交流群(qq)

微信服务号

javascript在线加密解密

javascript在线加密解密

Compact Code 将换行符及空格等进行压缩
标识符名称生成器

使用此选项来控制如何混淆标识符(变量名,函数名等)。

字典

使用identifiersDictionary 列表中的 名称生成标识符名称

十六进制

生成使用十六进制图案随机标识符的名称(如:0xabc123)

压缩的

使用短标识符名称(例如: a, b, c, 等等)

标识符字典

此选项设置标识符列表identifierNamesGenerator: dictionary 选项

标识符前缀

此选项使所有全局标识符具有特定的前缀。

混淆在同一页面上加载的多个文件时,请使用此选项。此选项有助于避免这些文件的全局标识符之间的冲突。为每个文件使用不同的前缀。

重命名全局变量和函数

此选项可能会破坏您的代码。仅在知道它的功能时启用它。

使用声明启用对全局变量和函数名称的混淆。

重命名属性

This option WILL break your code in most cases. Enable it only if you know what it does!

启用属性名称的重命名。所有内置的DOM属性和核心JavaScript类中的属性都将被忽略。

要设置重命名属性名称的格式,请使用 identifierNamesGenerator option.

若要控制将重命名的属性,请使用 保留变量或方法名 选项.

Simplify

This option enables additional code obfuscation through simplification.

防止格式化

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

启用代码控制流平整。控制流扁平化是源代码的结构转换,它阻碍了程序的理解。 JavaScript's obfuscator GH page for an example of how the transformation works.

格式化系数

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

花指令代码注入

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

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

花指令注入率

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

需要 字符串加密选项支持。

字符串Split

此选项会增加混淆代码的大小。.

This feature splits literal strings into chunks with length of the splitStringsChunkLength option value.

Split Strings Chunk Length

You can use this setting to set chunk length of the splitStrings option.

String Array

删除字符串文字并将其放置在特殊数组中。例如,字符串“ Hello World”中的字符串var m = "Hello World"; 将替换为对某个函数的调用,该函数将在运行时检索其值,例如:var m = _0xb0c3('0x1');

请参阅以下有关如何配置此功能或多或少具有弹性的选项。

旋转字符串数组

将字符串数组移动一个固定且随机的位置(在代码混淆中生成)。这使得将删除的字符串的顺序与其原始位置匹配变得更加困难。 如果您的原始源代码不小,则建议使用此选项,因为辅助功能会引起注意。

如果源代码不小,建议使用此选项。

重排字符串数组

随机排序字符串数组。

字符串编码

此选项会稍微降低脚本速度。

使用Base64或RC4 编码的所有字符串文字,并插入一个特殊的函数,该函数用于在运行时对其进行解码。

请注意,RC4选项比​​Base64选项慢大约30-35%,但是更难找回字符串。

字符串加密系数

您可以使用此设置来调整将字符串文字插入的可能性(从0到1)。

此设置在大型代码库中很有用,因为反复调用该字符串加密函数会降低代码速度。

变量加密

转换混淆对象键。

例如,将此代码var a = {enabled: true};混淆后,此代码将隐藏enabled对象键:var a = {}; a[_0x2ae0[('0x0')] = true;。

需要使用字符串加密的参数设置

数字转换为表达式

启用数字转换为表达式

例子:
// input
const foo = 1234;

// output
const foo=-0xd93+-0x10b4+0x41*0x67+0x84e*0x3+-0xff8;

Unicode转义序列

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

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

禁用控制台输出 禁止使用console.log,console.info,console.error和console.warn,这使得调试器的使用更加困难。
K保护

此选项使输出代码可抵抗格式设置和变量重命名。如果尝试在混淆后的代码上使用JavaScript美化器,则该代码将无法正常工作,从而使其难以理解和修改。

需要压缩成一行设置。

调试保护

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

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

调试保护间隔

如果选中该选项,则会使用一个时间间隔在“ 控制台”选项卡上强制使用调试模式 ,从而使开发人员工具的其他功能难以使用。 在经过混淆的源代码中会插入一个反复调用的特殊代码进行运作。

锁定域名

锁定混淆的源代码,使其仅在特定的域和/或子域上运行。对于仅复制并粘贴源代码并在其他地方运行的人来说,这真的很难。

多个域名或者子域名

可以将代码锁定到多个域或子域。例如,要对其进行锁定以使代码仅在 rank123.top上运行,请使用 add rank123.top, 使其可在 rank123.top的任何子域上, 使用 .rank123.top.

保留名称

禁用混淆和标识符的生成,这些标识符与通过的RegExp(正则)模式匹配。

例如,如果添加^someName, 混淆器将确保 不会破坏以someName开头的所有变量,函数名称和函数参数。

保留字符串

禁用字符串文字的转换,该文字与通过的RegExp(正则)模式匹配。

例如,如果添加^some *string, 混淆器将确保所有以某个字符串开头的字符串都不会在“字符串加密”中进行加密处理。

源码地图

确保不要上传嵌入了嵌入式内嵌源代码图的混淆后的源代码,因为它包含原始源代码。

源映射可以帮助您调试混淆的Java Script源代码。如果要在生产中进行调试,可以将单独的源映射文件上载到秘密位置,然后将浏览器指向该位置。

内联源地图

这会将源代码的源映射嵌入到混淆代码的结果中。如果只想在计算机上进行本地调试,则很有用。

单独的源地图

这将与源映射一起生成一个单独的文件。这对于调试生产中的代码很有用,因为这使您可以将源映射上载到服务器上的秘密位置,然后指向浏览器使用它。

使用“ 源地图基本URL”和“ 源地图文件名”来自定义sourceMappingURL将添加到混淆代码末尾的属性。

举例来说,如果你的设置 Base URL to "http://localhost:9000"File Name to "example", 你会得到: //# sourceMappingURL=http://localhost:9000/example.js.map。 附加到混淆代码的末尾。

种子

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

目标运行环境

你可以设置混淆代码运行的环境

  • Browser
  • Browser No Eval
  • Node

Currently the output of browser and node is identical.