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

2024-10-03 02:43:55 发布

您现在位置:Python中文网/ 问答频道 /正文

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

用户单击exe文件,然后程序重新查询密钥,用户粘贴密钥,密钥不再询问。用户无法将此激活的exe发送给其他用户,其他用户也无法再次使用此密钥

或者提出更好的主意

p。Cexe文件是控制台应用程序


Tags: 文件用户程序应用程序粘贴密钥exe主意
1条回答
网友
1楼 · 发布于 2024-10-03 02:43:55

例如,您可以使用平台模块(几乎)唯一地标识一台机器。然后,它们可以是作为字符串查看的该标识符的摘要,如下所示:

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. 如果您的标识符不够准确,则两个用户可能具有相同的密钥

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

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

相关问题 更多 >