🛡️
JS 混淆加密压缩
AES-GCM 加密 + 自解密壳,可加口令、有效期与域名锁定,体积最小
加入控制流扁平化与死代码注入,体积约翻倍
输入
164 字节 · 160 字符
输出
0 字节 · 耗时 0 ms
- **这不是安全意义上的加密。** 脚本必须能在浏览器里自己解开自己,所以密钥(或口令派生出的密钥)一定随脚本下发。任何拿到脚本的人都可以下断点把解密后的源码 dump 出来。
- 它的真实用途是:提高直接抄走/二次分发的门槛,保护商业授权边界。密钥、算法、鉴权、价格等敏感逻辑必须放在服务端,前端一律视为公开。
- 口令模式:用 PBKDF2-SHA256(21 万次迭代)从口令派生 AES-256-GCM 密钥,运行时弹出输入框取口令;口令不写入文件。忘了口令无法找回。
- 免口令模式:随机生成密钥并内嵌在脚本里,打开即用,但等于只做了一层包装,防不住任何有意图的逆向。
- AES-GCM 提供完整性校验:密文被改动一个字节,解密就会失败(而不是产出乱码)。
- 有效期与域名锁定写在**明文**的校验函数里,删掉或改掉那几行就能绕过——仅用于提醒,不可作为授权依据。
- 执行顺序为「混淆 → terser 压缩 → 加密 → 生成外壳」,右侧会给出各阶段体积与 gzip 后体积对比。
- 含 import / export 的 ES Module 代码在壳内以 eval 执行会报错,请先打包成 IIFE。
使用说明 / 算法说明
- **这不是安全意义上的加密。** 脚本必须能在浏览器里自己解开自己,所以密钥(或口令派生出的密钥)一定随脚本下发。任何拿到脚本的人都可以下断点把解密后的源码 dump 出来。
- 它的真实用途是:提高直接抄走/二次分发的门槛,保护商业授权边界。密钥、算法、鉴权、价格等敏感逻辑必须放在服务端,前端一律视为公开。
- 口令模式:用 PBKDF2-SHA256(21 万次迭代)从口令派生 AES-256-GCM 密钥,运行时弹出输入框取口令;口令不写入文件。忘了口令无法找回。
- 免口令模式:随机生成密钥并内嵌在脚本里,打开即用,但等于只做了一层包装,防不住任何有意图的逆向。
- AES-GCM 提供完整性校验:密文被改动一个字节,解密就会失败(而不是产出乱码)。
- 有效期与域名锁定写在**明文**的校验函数里,删掉或改掉那几行就能绕过——仅用于提醒,不可作为授权依据。
- 执行顺序为「混淆 → terser 压缩 → 加密 → 生成外壳」,右侧会给出各阶段体积与 gzip 后体积对比。
- 含 import / export 的 ES Module 代码在壳内以 eval 执行会报错,请先打包成 IIFE。