4

编辑:有人可以解释为什么这是“离题”吗?我认为它非常清楚地遵循了常见问题解答中列出的指导方针。有什么我想念的吗?

我一直在 PyQt(python 2.7,PyQt 4.9.5)中创建一个 Windows 桌面应用程序,并且即将发布该软件以供销售。是时候为基于许可/序列号的软件激活添加某种系统了。该软件是一种企业对企业产品,零售价约为 250 美元。

我一直在考虑使用 Fastspring,它们提供与以下内容的集成:

  1. AquaticPrime
  2. 可可FOB
  3. GameShield 和软件通行证
  4. Yummy Interactive 的 SoftwareShield
  5. Soraco 的快速许可证管理器
  6. 软包装
  7. Concept Software的SoftwareKey系统

提供此功能有哪些不错的选择?我遇到的一些事情是它们似乎都没有提供 python API,所以我必须弄清楚如何将它们的东西与我的 python 代码集成。我从来不需要这样做,因此易于与 Python 集成将是一个重要因素,成本也是如此。我觉得没有必要阻止任何人盗版我的软件,我只是想让企业保持诚实,以便他们购买正确数量的席位。最后要考虑的事情是,将来我可能想让它跨平台,理想情况下我不会将自己锁定在 Windows 上。

谢谢你的帮助。

4

1 回答 1

2

One thing to note is that it is relatively easy to decompile and reverse engineer Python bytecode and remove any protection you put into it, so it's usually not worth it to spend too much effort and time on implementing a crack-proof protection. You just want to put enough to keep people honest.

If your concern is that businesses buy the correct number of seats, one basic protection mechanism is to use a public key mechanism to put a digital signature to a message using a private key on your licensing server. The message is just a random string and some uniquely identifying information that restricts the machine that the license key is valid for (e.g. MAC address, etc), and perhaps a timestamp if you want to expire the key. This message and the signature is then encoded in a string that your customers put into your program, which validate the license key by verifying that signature matches the message and the message matches the machine.

There are simpler schemes if all you care is that the user has a key (not that they have a different key for different machines); you can simply use a totally random string for the message.

This scheme is secure as long as the user does not reverse engineer your code. It can be bypassed by reverse engineering the public key in your program with their own public key. It can also be bypassed by tampering the information used to identify the computer, e.g. MAC address; tampering these informations may allow multiple installations using the same key.

于 2013-01-19T23:50:09.360 回答