【问题标题】:How to set up a license server for license authentication / binding to single PC如何设置许可证服务器以进行许可证身份验证/绑定到单台 PC
【发布时间】: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) 并让服务器动态响应它(flaskdjango!?)。

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

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

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

帮助表示赞赏!

【问题讨论】:

    标签: python flask license-key


    【解决方案1】:
    1. 您可以通过第三方来颁发和管理您的许可证。只是 Google 的“许可证管理”、“生成和管理许可证”等

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

    【讨论】:

    • 第三方是一个考虑因素,但必须弄清楚,而且似乎需要更长的时间来设置所有内容。我在那里感到更加迷失:S。我会再调查一下。至于离线;当第一次授权许可证时,应用程序只需要一次互联网,之后许可证将被修改/绑定到 PC,并且不再需要服务器进行验证。
    猜你喜欢
    • 2011-03-05
    • 2015-08-15
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多