没有互联网软件授权机制[关闭](Software licensing mechanism witho

2019-09-21 21:06发布

我已经开发了我要保护与授权的软件。 到目前为止,我已经得到了使用硬件组件的详细信息,以产生对每一台机器的唯一ID码。 那么我可以允许对一个单一的连续按键5台机器的激活(每证5台机器是我卖什么)。

这一切工作正常,但显然只在具有互联网连接的机器。 这只是这种保护的限制,并没有什么我可以做些什么? 或者是我有办法可以解决这个问题?

注:在这一点上,在这个线程,我不开关于我已经生成的唯一ID的方式来批判,这是我所选择的方法,而不是无知,需要几棍原因。

Answer 1:

我觉得你有几种选择:

  1. 正如评论描述的,不要让你的许可证浮动,但该机的具体通过将所有允许机器的唯一ID的关键。 在启动时检查当前计算机的唯一ID对关键
  2. 使用当前的做法,但与服务器是不是就在你身边,但对客户的前提下差别,即许可证服务器客户需要的地方安装。
  3. 执行某种自检:每个正在运行的实例发送其唯一ID到网络中,进而侦听其他正在运行的实例的唯一ID。 其通过网络接收到四个以上的唯一ID一审自行关闭。 我想这可能使用UDP广播来实现。 执行这不是小事:

    • 你需要确保离开一个实例,并开始一个新的右后不会导致停机别处。
    • 此外,你可能想实现一个检查机器确实是联网

    如果我要实现类似的东西,我会介绍以下三种封装类型:

    • 开始:实例刚刚起步,广播其ID的第一次。 所有其他情况下需要广播自己的ID作为一个答案。 这样做的原因有两方面:
      1. 快速失败
      2. 理想情况下,如果允许的最大实例数已超过了已开始最后的实例应该退出。 它不会是理想的,如果已在运行的实例之一将关闭。
    • 周期性:所有实例定期发送他们的唯一的ID,以防万一前面的传输被错过
    • 退出:如果一个实例关闭它告诉这个事实的其他实例

在任何情况下,你应该想想编码允许实例的数量成键,这样你就可以在以后分发不同尺寸的按键。



Answer 2:

使它成为一个需要有中央授权服务器。 在启动每个程序与服务器注册。 服务器告诉客户,如果它可以启动与否。 在5个程序的情况下已经启动,该计划拒绝启动。

程序停止时,它再次告诉许可服务器,它是不需要许可证的任何更长的时间。

任务完成。 无需网络。



文章来源: Software licensing mechanism without internet [closed]