首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何保护Python代码?

如何保护Python代码?
EN

Stack Overflow用户
提问于 2018-06-12 00:48:26
回答 2查看 0关注 0票数 0

我正在用Python开发一个软件,它将分发给我雇主的客户。我的雇主想用一个时间限制的许可文件来限制软件的使用。

如果我们分发.py文件,甚至.pyc文件,那么很容易(反编译并)删除检查许可文件的代码。

另一个方面是,我的雇主不希望我们的客户阅读代码,担心代码可能被偷,或者至少是“新颖的想法”。

有什么好办法处理这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-06-12 09:11:19

“有什么好办法来解决这个问题吗?”不,没有任何东西可以防止逆向工程。就连dvd机上的固件都是逆向工程的。AACS加密密钥暴露了。尽管DMCA把它定为刑事犯罪。

由于没有任何技术方法可以阻止客户阅读您的代码,所以必须应用普通的商业方法。

  1. 许可、合同、条款和条件。即使当人们可以阅读代码时,这仍然有效。请注意,你的一些基于Python的组件可能要求你在使用这些组件销售软件之前支付费用。此外,一些开源许可证禁止你隐藏该组件的来源或来源。
  2. 提供很大的价值。如果你的产品如此好-以难以拒绝的价格-就不会浪费时间和金钱进行逆向工程。逆向工程是昂贵的。让你的产品稍微便宜一些。
  3. 提供升级和增强功能,使任何反向工程成为一个坏主意。当下一个版本破坏了反向工程时,就没有意义了。这可以被带到荒谬的极端,但你应该提供新的特性,使下一个版本比反向工程更有价值。
  4. 提供定制的价格如此有吸引力,以至于他们更愿意付钱给你,构建并支持增强功能。
  5. 使用一个过期的许可证密钥。这是残酷的,会给你一个坏名声,但它肯定会使你的软件停止工作。
  6. 提供它作为一个Web服务。SaaS不涉及下载给客户。
票数 0
EN

Stack Overflow用户

发布于 2018-06-12 09:59:22

(A)将代码的关键部分编写为C或C+库,然后使用SIP或swig将C/C+API公开给Python命名空间。

(B)使用cpython而不是Python

(C)在(A)和(B)中,应该可以将库作为带有Python接口的许可二进制文件分发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档