Tiny Online Tools logoTiny Online Toolssearch搜索工具…grid_view全部工具
首页chevron_right逆向工程工具chevron_rightJavaScript 混淆器JavaScript 混淆器

JavaScript 混淆器

重命名局部变量、隐藏字符串字面量并扁平化 JavaScript 的控制流——全部在浏览器本地完成,不上传任何内容。

混淆级别基础中等激进重命名可证明为局部的变量,并去除空白和注释。
info这只是阻止随意阅读的手段,不是真正的安全防护或加密,也无法保护秘密信息。一切均在你的浏览器本地运行,不会上传任何内容。

相似工具

PDF JavaScript 检查器

PDF JavaScript 检查器

找出 PDF 内部的每一段脚本——文档动作、页面与注释事件、表单计算——并在不执行的前提下阅读它们。

JavaScript 格式化工具

JavaScript 格式化工具

格式化 JavaScript 代码以提高可读性。

JavaScript 反混淆助手

JavaScript 反混淆助手

还原常见的静态 JavaScript 混淆手法:字符串数组内联、转义解码、常量折叠、死分支删除,以及把方括号访问改写成点号访问。

JavaScript 死代码分析器

JavaScript 死代码分析器

粘贴一个 JS 打包文件,找出文件中没有任何静态引用的顶层函数——这是一种可达性启发式分析,而非确定结论。

PDF 灰度转换器

PDF 灰度转换器

通过渲染每一页并重新构建文档,将彩色 PDF 转换为灰度。

CSS 动画生成器

CSS 动画生成器

通过实时动效预览创建可复用的 CSS 动画与可复制 keyframes。

SVG转PNG

SVG转PNG

在浏览器中将SVG文件渲染为任意尺寸的PNG图片。

apps

更多工具

浏览我们完整的免费在线工具集合。

这个工具做什么

本混淆器使用 acorn 解析你的代码,构建语法树,应用若干结构性变换,再用 astring 重新生成 JavaScript——整个过程都在你的浏览器中完成。你粘贴的任何内容都不会被上传到服务器。

必须说清楚这里“混淆”的含义:它是阻止随意阅读的手段,不是加密,也不是真正的安全防护。任何愿意运行并检查你的代码(或只是更耐心地阅读)的人,仍然可以还原其行为。发送到浏览器的 JavaScript 始终可以被下载并由接收方执行——任何变换都无法改变这一点。请用它来增加随意复制粘贴的难度,而不是用来保护秘密。无论是否混淆,都不要把真正的 API 密钥或凭据放进客户端 JavaScript 中。

三个级别

基础会重命名工具能够证明属于局部绑定的每一个标识符——函数参数,以及函数内部的 var/let/const 声明——依据的是真正的词法作用域分析,而非猜测。任何解析到全局或外部引用的标识符都会被有意保留原样:重命名会破坏你的代码。重新生成代码时也会去除空白和注释。

中等在基础的基础上,还会把每个作为表达式使用的字符串字面量收集到文件顶部的一个数组中,并将每次出现替换为形如 _fn(3) 的调用,通过索引查找该字符串。

激进在中等的基础上,还会把该数组中的每个字符串写成 \x/\u 转义形式,而不是普通字符,并把三条及以上的连续直线语句重写为 while(1) { switch(_i) { ... } } 调度循环,使代码结构不再是从上到下可读的。

正确性优先

每个级别的设计目标都是让生成的代码与你粘贴的原始代码运行结果完全一致。当某种结构无法被证明是安全的——例如解构模式、evalwith——工具会跳过对它的重命名,而不是冒险破坏你的程序。如果你的代码使用了 evalwith,会有提示告诉你重命名因此被完全跳过。

如何解读大小数据

统计栏显示输入和输出的精确字节数以及百分比变化。重命名和字符串提取通常会略微增加体积,即使代码变得更难随意阅读——混淆和压缩是两个不同的目标。

常见用途

  • 在分享演示或代码片段前,让一个小脚本不那么容易被随意读懂。
  • 通过对比输入输出,学习混淆器的工作原理。
  • 为逻辑本身并不敏感的脚本增加一点轻度的阅读门槛。

粘贴 JavaScript 代码,选择一个级别,然后复制或下载结果。