免费开源的在线JS混淆加密工具,混淆代码、加密数据,无任何功能限制,无任何广告,强力保护你的代码不被窃取!
压缩成一行 | 去除代码中的换行符。 | ||||||||
标识符混淆方式 | 设置变量名、函数名的混淆方式。 dictionary使用来自 使用十六进制模式随机生成 (例如: 使用简短的名称 (例如: | ||||||||
标识符字典 | 设置标识符混淆的名称字典。 | ||||||||
标识符前缀 | 设置混淆后的标识符使用特定的前缀 当混淆加载在同一页面上的多个文件时,请配置此选项。为每个文件使用不同的前缀有助于避免这些文件的全局标识符之间的冲突。 | ||||||||
混淆全局变量 | 开启此选项可能影响其它代码的运行,请谨慎使用! 开启后,将混淆全局变量与全局函数名。 | ||||||||
自我保护 | 开启后将使加密后的代码无法被格式化。如果有人尝试格式化加密后的代码,将使代码无法正常运行。 启用此选项后代码将被强制压缩成一行。 | ||||||||
控制流平坦化 | 此选项非常影响性能,请按需开启! 使代码控制流扁平化。控制流扁平化是一种阻碍程序理解的源代码结构转换。访问 JavaScript's obfuscator GH page 页面以了解其原理。
| ||||||||
死代码注入 | 启用该选项将导致加密后的代码量变大。 随机向代码中插入无意义的代码(不会被运行)使得代码的解密变得更困难。
启用该选项需要同时开启 字符串转换为数组 功能。 | ||||||||
分割字符串 | 启用该选项将导致加密后的代码量变大。 将文本字符串按照
| ||||||||
字符串转换为数组 | 去除代码中固定的字符串文本,并将其统一放在一个数组中。例如
| ||||||||
字符串转换为 Unicode 形式 | 将所有字符串转换为它们的 Unicode 形式。例如,字符串 这个太容易被解码了,没什么意义,不建议开启。而且开启后会增加代码大小。 | ||||||||
禁用控制台输出 | 通过重写为空函数禁用 console.log , console.info , console.error 和 console.warn | ||||||||
禁止控制台调试 | 启用后,如果开启浏览器控制台,浏览器将被冻结。 这将使他人无法使用 控制台 调试工具进行代码调试 (支持 Google Chrome 和 Mozilla Firefox 浏览器)。
| ||||||||
域名锁定 | 默认不进行域名限定。如果添加了锁定域名,则加密后的代码只能在锁定域名下运行 添加多个白名单域名或子域名的方法:如果需要将 example.com 的子域名全部设置为白名单域名,添加 | ||||||||
保留标识符 | 白名单中的标识符不会被混淆。支持正则表达式。 例如,添加 | ||||||||
保留字符串 | 同上。 | ||||||||
源映射 | 请确保不要在生产环境中嵌入 Source Map,因为可以通过它找到源代码,导致加密失去意义。 Source maps 能帮助你调试 JavaScript 代码。如果非要在生产中进行调试,可以将单独的 Source maps 文件上载到秘密位置,然后将浏览器指向该位置。 Inline Source Map将 Source maps 射嵌入到混淆代码的结果中。如果需要进行本地调试,会很有用。 Separate Source Map将 Source maps 一起生成一个单独的文件。这对于调试生产中的代码很有用,因为这使您可以将 Source maps 上传到服务器上的秘密位置,然后设置浏览器指向该位置。 使用 Source Map Base URL 和 Source Map File Name 来自定义 例如,如果设置 Base URL 为 | ||||||||
加密种子 | 默认情况下 (种子设为“0”时), 每次加密同一段代码得到的结果都不一样(变量名及字符串打乱的顺序会不一样)。 | ||||||||
运行环境 | 设置加密后的代码需要在哪里运行
当前 | ||||||||
预设选项 | 工具预设了几个保护选项,可以按需选择。
|
不,虽然不可能恢复确切的原始代码,但有时间、知识和耐心的人可以对其进行逆向工程。
由于JavaScript在浏览器上运行,浏览器的JavaScript引擎必须能够读取和解释它,因此无法阻止这种情况。任何承诺无法被破解的JavaScript加密都是骗人的
因为混淆器引入了新的代码片段,这些代码片段旨在保护和防御调试和逆向工程。此外,字符串被转换为十六进制代码,以使代码变得更难理解。您不必太担心代码大小,因为有很多重复,因此您的Web服务器将很好地压缩混淆的代码(如果您在服务器上启用了GZIP压缩)。
不建议这样做,在某些情况下它会破坏代码(例如您启用了自我保护)。不过,您可以先通过微筛选器运行代码,以确保它删除死代码并进行其他优化。
绝对不会!本工具全程在浏览器端进行加密,不会向服务器端传输任何数据。如果仍不放心,可以在工具载入完成后,断网再进行加密。
不,不可能将混淆后的代码恢复为原始代码,因此请保持原始代码的安全。
是的。
可以。这个工具使用用TypeScript编写的免费开源(BSD-2-Clause许可)混淆器。您可以转到其GitHub页面并在那里阅读更多内容。
还有许多插件,例如:webpack-obfuscator,gulp-javascript-obfuscator和grunt-contrib-obfuscator。