python - Python 应用程序的简单许可证保护

标签 python licensing py2exe py2app

虽然有很多这样的问题,但请耐心等待,因为我认为我的情况不同...

我有一个 5 美元的 Python 应用程序,我使用 py2exe、py2app 和 Linux 源代码进行分发。该应用程序有一年的许可证,因此人们需要在一年后升级到更新的版本。我想添加某种简单的许可证保护来执行一年限制。由于该应用程序只需 5 美元,我不在乎它是否容易被绕过。只是拥有一些东西会鼓励许多用户在一年后支付 5 美元进行升级,而不是忽略许可证。

注意:

  • 我希望源代码易于阅读,以免混淆
  • 我不想编译代码或 SaaS
  • 如果它真的很简单,我会考虑某种许可证 key 系统,但不想要任何复杂的东西

我的第一个想法是简单地记录安装日期(例如,使用 wxConfig)并在一年后禁用该软件,并礼貌地提示请升级。

有没有更好的解决方案?

最佳答案

为什么比较日期的 if 语句不能简单地为您解决这个问题?

执行此操作的最佳方法可能是将确实需要保持最新以便对最终用户有用的数据包含到您的软件中,例如 TurboTax 中的税表。当然,该业务策略的可用性取决于您的应用和市场。

您说过代码是源代码可读的。你还能做什么?你可以有很多这样的 if 语句......但是 grep 或 perl 或其他 python 脚本也可以快速找到它们并修复它以很快再次工作。如果您的 5 美元产品有市场,生气的客户可能会将日期禁用脚本分发给他的 friend 或通过网络分发。

这就像一个行李挂锁。只对诚实的人有效……但也许这就足够了。

您可以在源代码中的关键 if 语句旁边放置 DMCA 通知。 if 语句是一种防止在许可日期后使用的措施。问个好律师。你的旅费可能会改变。

维基百科在“反规避”下的 DMCA 中有这个:

Circumvention of Access Controls Section 103 (17 U.S.C Sec. 1201(a)(1)) of the DMCA states: No person shall circumvent a technological measure that effectively controls access to a work protected under this title. The Act defines what it means in Section 1201(a)(3): (3) As used in this subsection—

(A) to 「circumvent a technological measure」 means to descramble a scrambled work, to decrypt an encrypted work, or otherwise to avoid, bypass, remove, deactivate, or impair a technological measure, without the authority of the copyright owner; and

(B) a technological measure 「effectively controls access to a work」 if the measure, in the ordinary course of its operation, requires the application of information, or a process or a treatment, with the authority of the copyright owner, to gain access to the work. Thus, if there is some "technological measure that effectively controls access to a work", it is illegal to circumvent that measure. However, Section 1201 creates several exceptions to this rule, and the Library of Congress is empowered to create additional exceptions.

如果您在 GPG 签名字符串中使用您的公钥签名的日期...那么恕我直言,您可以声称此过期信息字符串...拥有版权所有者的权限。您还可以检查公钥是否被篡改,但您必须这样做并不明显,因为规避是非法的...

注意:自由软件先驱 Richard Stallman 有一个理论,即竞争往往会消除软件中的反功能,例如付费专区、烦人的提醒等。

关于python - Python 应用程序的简单许可证保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307372/

相关文章:

licensing - 软件许可计划

TFS 2013 许可

python - 使用 py2exe 将 tkinter 编译为可执行文件,但 xlrd 存在问题

python - py2exe 打包数据文件

python - multiprocessing.freeze_support()

python - NumPy 数组中沿给定轴的一阶差分

python - 基于内容的过滤推荐系统中连续特征的错误处理

licensing - 如何评估软件的值(value)和定价(许可证)

python - 将字符串日期时间替换为 Pandas 数据框中的纪元

python - 文件更改不会立即反射(reflect)