JS代码混淆加密工具

在线JS代码混淆加密工具,可以通过代码混淆的方式,让您的JS代码更难理解和被他人抄袭复制,保护您的JS代码。 本工具数据均在本地浏览器处理,不会上传到网络服务器中,请放心使用!


配置项较多,各位同学使用时可直接根据自身实际情况使用以下预设方案,您的所有设置均会自动保存,刷新不会丢失。

混淆预设方案


基础设置

加密系数&规则

高级设置 (每项一行)


混淆工具介绍 本工具可以混淆加密您的JS代码,让您的JS代码更难理解和被他人抄袭复制,保护您的代码成果,支持es3, es5, es2015, es2016, es2017, es2018, es2019 and partially es2020版本的JS。 本JS混淆工具完全免费,支持粘贴JS代码或文件上传方式混淆您的代码,没有长度和文件体积限制, 默认会带个小尾巴(最前面声明的一个obfuscator的变量),当然您可以随意删除,不会影响程序执行。 本工具采用开源组件在您的本地客户端浏览器混淆加密您的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 obfuscate