我正在构建一个用JavaScript编写的开发工具.
这不是一个开源项目,将作为商业产品出售(希望).
我正在寻找保护我投资的最佳方法.使用混淆器(代码管理器)足以合理地保护代码?
还有其他我不知道的替代方案吗?
(我不确定混淆器是否是正确的词,它是使用您的代码并使其非常难以理解的应用程序之一.)
我要告诉你一个秘密.一旦你理解了它,你会感觉好多了,因为Javascript混淆只对通过网络发送脚本时节省带宽非常有用.
你的源代码不值得偷窃.
我知道这对自我来说是一种震撼,但是我可以自信地说出这一点而你从未看过你编写的一行代码,因为在极少数开发领域中,严重的魔法发生,所有源代码都是如此.
说,明天,有人在家门口丢弃了一堆DVD,其中包含Windows Vista的源代码.你能用它做什么?当然,你可以编译并赠送副本,但这比复制零售版只要多一步.您可以费力地找到并删除许可证检查代码,但这是一些聪明的孩子已经对二进制文件做过的事情.替换徽标和图形,假装自己编写并将其作为"Vicrosoft Mista"推销?你会被抓住的.
您可能花费大量时间阅读代码,试图理解它并真正"窃取微软投资开发产品的知识产权".但是你会失望的.你会发现代码是一系列世俗的决定,一个接一个地做出来.有些人会比你想象的更聪明.有些人会让你摇头,想知道他们在那里招聘的猴子是什么样的.大多数人会耸耸肩说"是的,你就是这样做的."
在这个过程中,您将学到很多关于编写操作系统的知识,但这不会对微软造成伤害.
将"Vista"替换为"Leopard",以上段落不会改变一位.它不是微软,它的软件.这个网站上有一半人可能会开发一个Stack Overflow克隆,无论是否查看该网站的来源.他们只是没有.Firefox和WebKit的源代码可供任何人阅读.现在从头开始编写自己的浏览器.几年后见.
软件开发是时间的投入.想象你正在做的事情是如此特别以至于没有人可以在不看你的来源的情况下克隆它,甚至没有可操作(并且易于检测)的剪切和粘贴就能使他们的工作变得更容易,这是完全的傲慢.
我对上面的大多数答案都持不同意见.
确实,尽管混淆了每个软件都可以被盗,但至少,它更难以提取和重用软件的各个部分,这就是重点.
也许使用混淆比使用混淆代码更便宜,风险更低,而不是在有人偷走我们软件的最佳部分并制造危险的并发性之后将代码打开并在法庭上作战.
未经混淆的代码窃窃私语:
来吧,分析我,重用我.也许你可以使用我制作更好的软件.
混淆的代码说:
走吧伙计.使用自己的想法比试图破解我更便宜.