如何设置许可证服务器以进行许可证身份验证/绑定到单个 PC

问题描述

我正在开发一个要出售给企业的应用程序。企业希望为一定数量的许可付费(例如,5 台计算机的 5 个许可)。

我们已经实施了一个客户特定的许可文件,使软件能够正常工作,但您可以简单地将该许可重复用于任意数量的机器。这不好。想象一下,您是一家支付 5 个许可证的公司,结果发现您可以使用一个许可证。肯定会违反使用条款,但没人知道。

我相信我可以通过 MAC 地址/cpu 等将许可证绑定到一台 PC,但如果我想这样做,我需要在许可证绑定到 PC 时对其进行身份验证。 所以我遇到的问题是如何在初始运行时验证许可证?

我的想法是,我需要一个外部许可证服务器来接收请求,通过查找此许可证已激活的实例来检查是否有效,添加实例并返回一个响应,告诉 PC 可以进行身份​​验证/绑定许可证。 我能够对消息进行编码并在 PC 端处理身份验证。我不知道如何设置服务器和请求/响应(通信)部分。在网络方面,我是一个完全的新手,我不想浪费几天或几周的时间来发现方法错误的。

我认为有两种可能性:

  • 在服务器和 PC 上使用 python socket 进行通信。

我应该能够用几行代码来写出它,但是我发现很难找到一个可以让我托管套接字的服务。例如。 PythonAnywhere 不支持这个(“我可以使用 websockets,或者运行我自己的套接字服务器吗?恐怕不行——我们只支持实现 Wsgi 协议的 Python 应用”来源:{{3} }),谷歌应用引擎似乎也没有https://help.pythonanywhere.com/pages/#im-a-beginner-learning-python,我对其他人也有类似的迹象。

  • 让 PC 发出 http 请求 (python requests) 并让服务器动态响应它(flaskdjango!?)。

我完全没有使用过 Flask 或 django 的经验,似乎我需要花很多时间来做这件事。这似乎是一件过于复杂的事情,我什至不知道是否可以完成。

这些方法有效吗? 什么选项是合适的? 其他选择?

我知道一切都可能被黑客入侵。我只需要这样做,这样别人就不能简单地将可执行文件复制到另一台 PC 上并让它在那里运行而无需付出任何努力。

感谢帮助!

解决方法

  1. 您可以与第 3 方合作来颁发和管理您的许可证。只需 Google 的“许可管理”、“生成和管理许可”等

  2. 在 Flask 和 Django 之间,我会说使用 Flask。任何一个都不应该花很多时间来编写代码来生成许可证并返回它。您面临的挑战是 - 在调用您的服务器的应用程序上编写代码,以及在应用程序不在连接到网络的机器上的情况下您将做什么(假设该应用程序可以离线使用)。这就是为什么有些人更喜欢使用第 3 方来管理许可证的原因