先说一下背景: 不同于大多数互联网公司,我们的软件一般不会部署在我们能够掌控的机房内,大多跟随不同的项目部署到客户的机房中。
我们最近在思考,希望找到一种方案可以保护我们的源码,至少增加盗用的难度。
目前的思路除了用核心模块用 C 或者 Java 写以外,还有一种方案就是使用 crypto 加密源码,运行时再解密。虽然解密后在内存中依然可以获得源码,但至少在复制分发的过程中,不能轻易的看到源码。倾向于这种方案是因为我们 JS 开发人员相对比较多。
花了两天写了个模块:https://www.npmjs.com/package/extension-jse供大家讨论。各位看看这个方案是否可行,也许解码部分可以用 C 实现,不知道有没有必要。