如何在 python 上使用唯一许可证密钥保护程序?

How to protect program with unique licence key on python?

我需要在我的程序上设置密钥,这将是一个 exe 文件。我想看:

用户点击 exe 文件然后程序需要密钥,用户粘贴密钥并且密钥不再询问。用户无法将此激活的 exe 发送给其他用户,其他用户也无法再次使用此密钥。

或提出更好的想法。

页。 C。 exe文件是控制台应用程序

例如,您可以使用平台模块来(几乎)唯一地标识一台机器。然后,它们的键可以是该标识符的 sha256 十六进制摘要,被视为一个字符串,如下所示:

import hashlib
import platform

# Only an example, you can add whatever you want provided by the platform module to identify the machine
identifier = platform.platform() 
key = hashlib.sha256(identifier.encode()).hexdigest()

优点:

  1. 无法共享
  2. 不可重复使用

缺点:

  1. 不尊重Kerchkoff's principle

因此,这意味着只要用户不知道如何自行计算标识符,您的系统就是安全的。

您可以使用您自己的服务器详细说明此模型。例如,您可以使用您计算的标识符和一个秘密字符串在您的服务器上计算一个密钥。

优点:

  1. 您不必为每个用户存储随机密钥,您只需要访问其标识符

缺点:

  1. 如果您的标识符不够准确,两个用户可能拥有相同的密钥

要解决这个问题,您可以为每个用户定义一个随机字符串,附加到他们的标识符,但这意味着您必须为每个用户存储这个随机字符串。

另请注意,最后两个解决方案使用外部服务器。因此,您假设您将能够进行网络请求。