【发布时间】:2021-06-20 12:15:52
【问题描述】:
我正在开发一个要出售给企业的应用程序。企业希望为给定数量的许可证付费(例如,5 台计算机的 5 个许可证)。
我们已经实施了一个客户特定的许可文件,使软件能够正常工作,但您可以简单地将该许可重复用于任意数量的机器。这不好。想象一下,您是一家支付 5 个许可证的公司,却发现您只需一个许可证就可以过关。当然会违反使用条款,但没人知道。
我相信我可以通过 MAC 地址/CPU 等将许可证绑定到单台 PC,但如果我想这样做,我需要在许可证绑定到 PC 时对其进行身份验证。 所以我遇到的问题是如何在初始运行时验证许可证?
我在想的是,我需要一个外部许可证服务器来接收请求,通过查找该许可证已激活的实例来检查是否有效,添加实例并返回一个响应,告诉 PC 可以进行身份验证/绑定许可证。 我能够对消息进行编码并在 PC 端处理身份验证。我不知道如何设置服务器和请求/响应(通信)部分。在网络方面,我是一个完全的新手,我不想浪费几天或几周的时间来发现这种方法是错误的。
我看到了两种可能性:
- 在服务器和PC上使用
python socket进行通信。
我应该可以用几行代码写出来,但是我发现很难找到可以让我托管套接字的服务。例如。 PythonAnywhere 不支持这一点(“我可以使用 websockets,或者运行我自己的套接字服务器吗?恐怕不能——我们只支持实现 WSGI 协议的 Python 应用程序”来源:https://help.pythonanywhere.com/pages/#im-a-beginner-learning-python) ,谷歌应用引擎似乎也不是https://cloud.google.com/appengine/docs/standard/go111/sockets,我对其他人也有类似的迹象。
- 让 PC 发出一个 http 请求 (
python requests) 并让服务器动态响应它(flask或django!?)。
我完全没有使用烧瓶或 django 的经验,看来我需要花很多时间来做这件事。这似乎是一件过于复杂的事情,我什至不知道它是否可以完成。
这些方法是否有效? 什么选项是合适的? 其他选择?
我知道一切都可能被黑客入侵。我只需要做到这一点,人们就不能简单地将可执行文件复制到另一台 PC 并让它在那里运行而无需真正的努力。
帮助表示赞赏!
【问题讨论】:
标签: python flask license-key