跳到正文
在此运行 完全在你的浏览器里运行,不上传、不登录

JS 混淆

浏览器内的 JS 基础混淆:局部变量短名、去注释与多余空白、字符串可选十六进制转义。

这是词法级的基础混淆,不是加密。它会让随手阅读变慢,但 不能 保护不了密钥。不要把 API key、令牌或授权校验放进前端 JavaScript。

换行会被保留。合并行会改变自动分号插入的读法,因此本工具不做这件事。

怎么用

  1. 把 JavaScript 粘贴进左侧输入框。
  2. 保留局部变量名替换为短名,会把分词器能判定为局部的声明重命名。
  3. 保留去除注释与多余空白,删掉注释并压掉缩进;换行保持不变。
  4. 想让字符串内容变成 \x41 这种转义形式,就打开字符串转十六进制转义。
  5. 点混淆,再复制或下载。状态行会报告重命名了多少个名字,以及体积变化。

重命名这一步刻意做得很保守:如果某个名字出现过 obj.count 这样的属性访问、count: 这样的对象键,或者在它自己的声明之前就被引用,那么这个名字会整名跳过,而不是改一半留一半。

常见用法

常见问题

问:这能保护 API key 或授权校验吗? 答:不能。这是词法级的基础混淆,不是加密。送到浏览器的东西总有办法被读回来,密钥与授权校验应该放在服务端。

问:为什么不把所有行合并成一行? 答:合并行会改变自动分号插入的读法,可能悄悄改变行为。保留行边界对词法工具来说是安全的做法。

问:什么情况下某个变量会被跳过? 答:出现属性访问、对象键或标签,在声明之前就被引用,或者文件里有 eval / with,这个名字都会整名跳过。整名跳过能保证输出一致,而不是有的改了有的没改。

你的数据留在这台设备上

JS 混淆 完全在本地运行。你粘贴或拖入的一切都由你自己的浏览器处理,不会被传走。我们的服务器不保存任何东西——关掉标签页就没了。

你输入的内容不会发往服务器、不被记录,也不用于分析统计。首次加载之后即使断网,这个页面照样能用。