可以将JavaScript编译/编码为二进制以隐藏代码吗?

时间:2019-02-26 13:28:54

标签: javascript node.js

我的NodeJS应用程序当然包含所有业务逻辑和算法,如果我将其安装在客户服务器上,则他们可以读取我的源代码,我想对其保密以保护我的业务。

PHP有几个工具可以将php项目并将其编码为字节码,而这正是我希望对JS / NodeJS能够做到的。

有几种NodeJS打包器,它们只是将它们打包成一个可执行文件,但是普通的JS源代码仍然存在。

问题

在客户服务器上安装JS / NodeJS源/产品时,如何保护它?

3 个答案:

答案 0 :(得分:2)

  

PHP有一些工具可以将php项目并编码为字节码

也有反编译器。

在这种情况下,将使用一个缩小器和pkg。这提供了一个可行的应用程序,如果客户打算违反合同或许可证,就不能轻松对其进行修改。仅仅使用一个缩小器是不够的,因为在生产中必须进行正确的调试才能使用源映射,而在源映射存在的情况下,可以将缩小的JS完全还原为原始JS。

bytenode使用V8功能将脚本编译为字节码并对其进行评估。恰恰相反,它不会像编译器那样使事情变得更快。

答案 1 :(得分:0)

丑陋是您可以执行JavaScript代码的最佳选择。它将使您的代码无法被人类读取。

答案 2 :(得分:0)

有一个库可以将nodeJS的纯文本javascript文件转换为二进制文件。叫做bytenode

https://www.npmjs.com/package/bytenode

Bytenode允许您将Javascript文件编译为.JSC 那么您可以使用require从您的JavaScript代码中调用它

一旦将bytenode模块加载到nodejs代码中,就可以使用“ require”调用二进制文件。

相关问题