免费的 JavaScript 混淆器?

8

感谢您的关注和宝贵时间。

请提供一些免费的JavaScript混淆器软件,可以压缩、混淆和编码JavaScript以进行保护。我搜索过了,但只找到基于Web的混淆器,而那些免费且桌面版的混淆器质量不理想。请指导和帮助我。

谢谢


@polemon 你可能想要保护你的 Web 应用程序的源代码。不过很遗憾,这是不可能的。 - Mark
1
为什么会有人需要那个?多么奇怪、可反驳和负面的说法啊。原因很明显:提供代码保护的最低限度(当然,没有东西是真正安全的),同时最小化代码占用空间,以实现更快的加载时间。难道你没想过混淆器/压缩器存在的理由吗? - RichieHH
我喜欢这里可以找到一些非常有帮助的答案,即使问题被关闭为“不适合主题”。我非常讨厌这个说法:“在 Stack Overflow 上,要求我们推荐或查找书籍、工具、软件库、教程或其他外部资源的问题是不适合主题的,因为它们往往会吸引有意见的答案和垃圾邮件。”任何类型的问题都可能会吸引有意见的答案和垃圾邮件!这并不意味着那些答案没有价值,从来到这里的绝大多数人的角度来看!这是少数人对多数人的压制性控制。 - Shavais
10个回答

14

谢谢balupton,Packer很好,但它是基于Web的,有没有桌面工具? 谢谢 - haansi
2
Google Closure是一个Java文件,您可以通过命令行下载和运行。这是我首选的缩小方法(以及jQuery的),并且正如所述,它可以通过传递一些额外的命令行参数来执行其他操作,例如打包。 - balupton

12

1
等一下,混淆并不能提供完全的“保护”,但它确实使得阅读代码更加耗时。 - cmc
我的观点是这样的,它是毫无意义的,因为它几乎没有提供任何保护。 - NullUserException
1
混淆确实可以很好地发挥作用,Firefox Javascript Deobfuscator并不能真正解混淆它(我使用了两个不同的混淆器来混淆我的代码)。 - Luca Steeb
@steebchen 这仍然是一项徒劳的练习,只会推迟不可避免的结果。 - NullUserException

3

YUI Compressor通常被认为是压缩JavaScript的最佳选择。但是,如果有人想窃取你的代码,不要指望任何东西可以保护它——这是愚蠢的行为,任何专业人士都不会浪费时间去做这种事。


HTML5平台非常吸引人,但知识产权安全问题确实很糟糕。从技术上讲,你不能在客户端运行任何类型的代码并期望它是安全的,但很多客户端应用程序都被销售并且表现良好,尽管所有的知识产权都在客户端运行。在大多数情况下,分布式二进制文件似乎足够模糊,以防止盗版成本有效。但是JavaScript混淆可以被很好地撤消,并且很容易做到这一点,因此其实用性相当有限。我想知道WebAssembly是否能帮助我们解决这个问题。 - Shavais

2

2

同意!我使用obfuscriptor.com来混淆我的JS,看起来像加密的,而不是像YUI或Google提供的简单的去除空格和重命名变量的混淆。 - user411103

1
Obfuscators可以很容易地美化。 TypeScript项目绝不是万无一失的解决方案,但根据使用的参数,确实使美化难度大大增加。
字符串被转换为十六进制,您将永远无法恢复原始代码,因此请保存安全副本。
另外,您可以在使用此功能之前运行缩小器,但不要运行此功能,然后再使用缩小器。事情可能会出错。 这里是一个在线游乐场,让您熟悉。
如果您不想使用webpack、gulp、grunt——在线游乐场也可用供您在本地运行,感谢Tiago Serafim。
JavaScript混淆器工具——由Timofey Kachalov提供。

1

这是一个简单的基于Web的工具:

http://www.javascriptobfuscator.com/default.aspx

另外,要记住,如果攻击者足够决心,他们将能够重新组合原始代码,混淆只是阻止了一些随意的攻击者,并使更有经验的攻击者更加困难。

0

混淆的意思是:
以一种方式改变代码,使其不易读取,但功能和逻辑完全相同!

我通常使用一个非常好的免费混淆器,因为它:
1] 免费 :)
2] 单向混淆! 一些工具通过“eval”更改您的函数,这很容易显示您的原始代码。
3] 添加随机代码以进行更难的跟踪。
4] 还可以清除换行符+空格。

完整网址:http://freejsobfuscator.com/


0

我在这里找到了一个很棒的混淆器工具:http://javascript-obfuscator.org。 这个工具给了我很多选项,可以选择保护我的JS源代码。然而,其中一些选项会在代码保护和代码大小/速度之间做出权衡。


虽然这理论上可能回答了问题,但最好还是在这里包含回答的必要部分,并提供参考链接。 - Draken

0

嘿,这种东西不存在。

Javascript需要由浏览器解释,因此必须可读取... 因此无法混淆。你在谷歌上找到的那些就是最好的了。它们可以使javascript稍微难以手动阅读,但另一方面,很容易将它们解密。

如果您想要保护您的代码,有一个选择。您可以使用服务器端javascript解决方案(如node.js)将代码移动到服务器端。这可能会使您的应用程序总体上更加复杂,但如果您真的非常重视保护您的代码,这可能是值得的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接