工具 Javascript加密混淆
拖拽JavaScript文件 或者 点击读取JavaScript文件

                            

混淆加密配置

一键配置

基础配置

标识符名称生成器

标识符前缀

目标运行环境

调试保护设置

字符串设置

字符串编码

字符串加密系数

过滤设置

锁定域名

保留方法

保留字符串

附加设置

源码地图

源码地图地址

源码地图文件名

标识种子ID

JAVASCRIPT代码混淆工具配置说明

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

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

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

短字符:
使用短字符名称 (如: a, b, c等等)

标识符前缀

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

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

方法变量重命名
此选项可能会破坏您的代码。仅在知道它的功能时启用它。

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

K保护

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

需要压缩成一行设置。

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

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

格式化系数

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

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

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

花指令注入率

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

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

字符串加密

删除字符串文字并将其放置在特殊数组中。例如,字符串“ 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;。

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

Unicode转义序列

转换混淆对象键。

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

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

禁用控制台输出

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

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

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

调试保护间隔

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

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

锁定域名

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

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

保留名称

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

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

保留字符串

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

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

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

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

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

单独的源地图
这将与源映射一起生成一个单独的文件。这对于调试生产中的代码很有用,因为这使您可以将源映射上载到服务器上的秘密位置,然后指向浏览器使用它。
使用“ 源地图基本URL”和“ 源地图文件名”来自定义sourceMappingURL将添加到混淆代码末尾的属性。
举例来说,如果你的设置基本URL来 "http://xxx.com:9000"和文件名来 "tool",你会得到://# sourceMappingURL=http://xxx.com:9000/tool.js.map。附加到混淆代码的末尾。

种子

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

Javascript加密混淆简介

混淆工具介绍

本工具可以混淆加密您的JS代码,让您的JS代码更难理解和被他人抄袭复制,保护您的代码成果,支持es3, es5, es2015, es2016, es2017, es2018, es2019 and partially es2020版本的JS。

本JS混淆工具完全免费,支持粘贴JS代码或文件上传方式混淆您的代码,没有长度和文件体积限制, 默认会带个小尾巴(最前面声明的一个obfucator的变量),当然您可以随意删除,不会影响程序执行。

本工具采用开源组件在您的本地客户端浏览器混淆加密您的JS代码,您的JS代码不会上传到网络服务器中处理, 完全在您的浏览器完成JS代码的加密混淆,您无需担心代码泄露,安全可信,请放心使用。

您的JS代码由开源组件完成混淆,如果您有高频混淆需求,建议使用CLI方式自动化混淆,更加高效便捷。

混淆预设方案

由于本工具配置项较多,默认提供了3套预设的混淆加密方案,可根据自身情况修改配置,预设方案分别是:
1、最佳混淆,性能较差(将会慢50-100%); 

2、中等混淆,性能均衡(将会慢30-35%); 

3、低度混淆,性能最佳(比未混淆稍慢)。

由于混淆过程中会修改程序的执行逻辑以及众多变量替换等操作,会影响原程序的执行性能和增大文件体积,混淆强度和程序性能互斥, 最佳混淆会让混淆效果最佳,解密和理解难度最大,但程序执行性能会受到较大影响。最低度的混淆虽然执行性能受影响最小,但混淆强度最低, 相对较容易理解混淆后的程序,当然您也可以折中选择中等的混淆强度,该方案相对均衡。

您也可以根据实际需要在预设的基础上调整某些配置,值得注意的是,切换预设配置可能会覆盖某些您的自定义设置,请留意配置情况。
一般而言,可以无需修改设置直接使用默认的混淆预设方案即可。

配置项介绍

一、基础设置

注意部分设置可能会破坏您的程序逻辑,请混淆后注意检查验证程序逻辑。

防止格式化:可以让代码美化工具对混淆后的代码不起作用。使用eval语句:使用eval语句方式实现程序混淆。转义Unicode:将变量值转换为Unicode编码,此项会大大增加文件体积,且很容易还原回去,建议只针对小文件使用。优化代码结构:精简代码,如将多个if else结构换为三目运算。
重命名全局变量:将全局变量重命名,可能会造成代码执行问题,请根据实际情况选择。
重命名属性名:将对象属性名重新命名,可能会造成代码执行问题,请根据实际情况选择。
分割变量字符串:将会以10个字符为一个单位,拆分混淆变量值的字符串。
数字转表达式:将数字转换为函数表达式的写法,增加复杂度。
禁止控制台调试:当控制台打开时终止程序执行,并进入死循环干扰控制台调试。
禁止控制台输出:屏蔽一些控制台输出信息,如log,error,debug等方法,减少程序流程提示。

二、混淆加密系数&规则

混淆加密规则及系数均可以选择关闭相应功能,提高程序的执行效率,系数设置范围为0-1,值越高则混淆加密强度越高,文件体积和代码执行效率会有所下降。

变量加密系数:混淆改变您的代码变量名称,值越高看起来越乱。
死代码注入系数:死代码也就是花指令,指向正常的程序中注入一些没什么用的废代码,让程序更乱更加难以理解,干扰解密过程。
控制流平坦化系数:改变程序的执行流程结构,模糊程序模块之间的前后关系,让程序看起来更加乱,增加程序分析难度。
变量加密规则:加密改变变量的方法,base64加密后比rc4执行效率要高,当然没有rc4强度高。

三、混淆高级设置

高级设置中所有的设置项每项一行,使用回车分隔每一个配置项。

安全域名:只允许混淆后的代码在指定的安全域名下执行(支持多个域名,子域名通配符用“.domain.com”表示), 在此之外的任何域名下执行均会重定向到所设置的URL中,这样即使您的代码被复制,对方也无法使用,强烈建议设置此项!
强制转换的字符串:强制加密编码一些比较敏感的字符串,让寻找及解密难度增大。
保留的变量标识符:需要保留的不希望被混淆的一些变量标识符。
保留的字符串:需要保留的不希望倍混淆的一些字符串。

为何要混淆代码?

混淆代码是为了保护您的代码成果,通常有以下几种情形:
1、避免让他人通过代码读懂您的产品逻辑,造成商业机密泄露。
2、防止一些白嫖党无节操的复制掠夺您的代码成果。
3、为客户开发程序,在未收到尾款前用于给客户展示的演示站。
4、删除代码注释等无用信息,提高代码文件的网络加载速度。
此外,还有很多类似场景...

其它提示

使用本工具完成代码混淆后,请勿使用其它代码压缩工具(如uglifyjs等)或混淆加密工具二次处理混淆结果,否则可能会造成混淆变量被修改造成脚本无法执行或者混淆失败,也不要使用工具二次混淆,仅混淆加密一次就已经足够安全了。

为了代码的完整性,建议混淆完毕后使用工具提供的一键复制或下载保存到本地。

工具将会默认记住您的混淆设置,只需设置一次即可,不需要每次使用都重新设置。

更多混淆加密细节请参考 Javascript Obfuscator


其他工具
微信支付宝收款码合并
工具简介在线微信支付宝收款码二合一制作工具,可以将微信收款码和支付宝收款码合并到同一个图片上方便收款,多个收款码样式可选,可以直接打印粘贴合成后的二合一收款码。本工具只是简单的将微信和支付宝的收款码合并到同一个图片上,方便自行打印粘贴后收款,不是云融合收款码,也不会对您的收款码做任何处理,请放心使用。您可以在微信和支付宝中分别保存下载收款码,使用本工具依次选择后一键完成制作,方便快捷。收款码合成的清晰度取决于您的收款码,如果您合成后收款码中的二维码比较模糊,请选择更清晰的收款码后重新生成。如何使用请分别点击选择微信收款码和支付宝收款码,选择好喜欢的收款码样式,点击合并即可完成微信和支付宝收款码的合并预览图片->鼠标右键->另存为->即可下载收款码;手机长按保存即可。注意选择的微信或支付宝收款码,每个图片仅能有一个二维码,如有多个可能会识别失败。经营过程中请是不是检查下自身二维码,避免被不法分子替换造成收款损失。本工具不支持老保本的浏览器,请使用最新版本的浏览器使用本工具以获得更好的体验。如何获取收款码微信:我->支付->收付款->二维码收款->保存收款码支付宝:首页->收付款->二维码收款->个人收款->保存收款码