我正在用Python开发一款软件,该软件将分发给雇主的客户。我的雇主想通过限时许可文件限制软件的使用。
如果我们分发.py文件甚至.pyc文件,将很容易(反编译和)删除检查许可证文件的代码。
.py
.pyc
另一个方面是,我的雇主不希望我们的客户阅读该代码,因为担心该代码可能被盗或至少是“新颖的主意”。
有解决这个问题的好方法吗?最好使用现成的解决方案。
该软件将在Linux系统上运行(因此,我认为py2exe不会成功)。
Python是字节码编译的解释语言,很难锁定。即使你使用py2exe之类的exe打包程序,该可执行文件的布局也是众所周知的,并且Python字节码也很容易理解。
通常在这种情况下,你必须进行权衡。保护代码真的有多重要?那里是否存在真正的秘密(例如,对银行转账进行对称加密的密钥),或者你只是偏执?选择一种语言,使你能够最快地开发出最好的产品,并要对你的新颖创意的价值抱有现实的态度。
如果你确定确实需要安全地执行许可证检查,请将其编写为一个小的C扩展,以便可以对许可证检查代码进行额外的难度(但并非不可能!)以进行反向工程,并将大部分代码保留在Python中。