Cocos2D-JS可以加密源代码吗?

时间:2016-03-20 14:58:42

标签: javascript cocos2d-js

  1. 如果我使用Cocos2D-JS制作HTML 5游戏,我是否可以加密JavaScript源代码,以便没有人可以使用它?

  2. 如果加密不起作用,唯一的方法是对JavaScript进行模糊处理。如果我使用Cocos2D-JS制作Android / IOS应用程序,黑客是否可以获取我的源代码?

1 个答案:

答案 0 :(得分:3)

JavaScript是interpreted language。通常,这意味着客户端必须能够读取代码才能执行它。这是JavaScript设计的一个深思熟虑的基本特征,并且是advantageous in many respects

话虽如此,最近有人努力创建一种可以编译JavaScript的中间字节码式语言(例如,asm.js)。然而,像asm.js这样的项目的目的不是混淆,而是执行速度(特别是关于视频游戏),所以你不能依赖它们来使你的代码不可读。

有许多工具可以缩小 JavaScript代码,使代码不易人类阅读(例如,删除所有空格并将变量重命名为单个字母)。这些工具的热门示例包括closure compileruglify js。但是,总是可以取消缩小这些工具生成的代码。

您的JavaScript代码的缩小推荐的做法,但是,因为它会使您的源文件小许多倍,因此应用程序的加载时间会显着缩短(通过网络发送的数据更少)。

我也知道声称是JavaScript 混淆器的工具,例如this one混淆器使用廉价技巧使代码不易读取(例如滥用# self.send_confirmation_message(order, self.communication_type_code) 方法和更改字符编码)。然而,这些工具的结果,如缩小,总是无法完成。请注意,与缩小功能不同,使用这些工具会增加代码显着的大小,并可能导致代码慢慢运行

  

简而言之,不,无法“加密”或“混淆”您的JavaScript代码,因此任何人都无法复制它。

互联网的本质是任何人都可以轻松获得您的程序副本。如果您希望保护您的源代码,通过互联网提供的JavaScript程序可能不是最好的分发平台。

作为旁注,您可能希望了解开源您的软件的好处,并在GNU GPL或MIT等免费许可下发布。这意味着故意免费赠送您的源代码,它可以让找到您软件的开发人员有机会改进它并帮助您的用户。