发布于 2016-03-20 16:21:48
JavaScript是解释语言。一般来说,这意味着客户端必须能够读取代码才能执行它。这是JavaScript设计的一个深思熟虑的基本特性,也是在许多方面都有利。
尽管如此,最近还是有人在努力创建一种中间字节码风格的语言,JavaScript可以编译成这种语言(例如,asm.js)。然而,像asm.js这样的项目的目标不是混淆,而是执行的速度(特别是在电子游戏方面),所以您不能依赖它们的使用来使您的代码不可读。
有许多工具可以缩小JavaScript代码,使代码不容易被人阅读(例如,删除所有空白并将变量重命名为单字母)。这些工具的流行例子是闭包编译器和丑陋的js。然而,这些工具生成的代码永远都是可能的。
但是,JavaScript代码的小型化是推荐的实践,因为它使源文件小很多倍,因此大大缩短了应用程序的加载时间(通过网络发送的数据更少)。
我还知道一些声称是JavaScript混淆器的工具,比如这一个。混淆器使用廉价的技巧来降低代码的可读性(比如滥用eval方法和更改字符编码)。然而,这些工具的结果,就像小型化一样,总是无法完成的.请注意,与小型化不同,使用这些工具会增加代码significantly的大小,并可能导致代码运行的速度慢得多。
简单地说,no,不可能“加密”或“混淆”您的JavaScript代码,这样任何人都不可能复制它。
互联网的本质是任何人都可以很容易地获得你的程序的副本。如果你想保护你的源代码,通过互联网提供的JavaScript程序可能不是最好的发布平台。
顺便提一句,您可能想看看open-sourcing软件的好处,并在像GPL或MIT这样的免费许可下发布它。这意味着有意识地免费分发你的源代码,并且它可以给那些发现你的软件有用的开发者提供改进它和帮助你的用户的机会。
https://stackoverflow.com/questions/36115310
复制相似问题