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