软件许可证密钥

问题描述:

我在发布我的Windows应用程序的第一次经历,我没有一个提示我应该继续前进。在这里我的问题:软件许可证密钥

我有我自己的网站运行托管。我想实现一个客户 门户网站,所以在收到订单后,我将通过电子邮件 提供用户名和密码,用户可以在其中下载激活码。我知道这是一个很大的问题...如何保护我的应用程序免于重复?您知道什么是将“许可证”系统应用于我的软件的“最佳”解决方案?

  • 如何强制应用程序在特定的pc上执行?实现起来很复杂吗?

  • 在这种情况下,我应该为每个用户创建一个新的版本,所以激活密钥将解锁只是正确的构建?

  • 如果是这样,我明白每个配置文件都会有自己的构建文件以及激活码和一种服务协议信息(即1年免费更新)。 我再次看到它复杂的管理,我需要编译,构建和上传新版本的应用程序的每一个变化......?好吧...我的应用程序现在是一个简单的exe文件,其中包含一些文件夹和xml配置文件,但将来会发生什么......?

  • 是否可以在所有用户之间共享一个可以使用用户激活码激活的单个应用程序文件(在这种情况下,用户将拥有自己的配置文件,仅用于激活密钥和SA信息)。安全呢?如果有人共享激活码,我想应用程序可以在任何地方解锁。

  • 我是否应该在专用服务器(即)上实施客户门户?我没有可能安装我自己的服务器。您如何看待ISP上的虚拟服务器?

  • 开发票和订购过程如何?您认为电子商务商业解决方案是一个不错的选择?为了节省费用,我想通过电子邮件或传真获得订单,然后处理许可证(仍不知道如何),并发送有关付款信息(即电汇)的发票。你怎么看?

  • 如果软件费用高昂(还不知道价格)假设少于30美元是否有意义作为支付方式使用电汇?关于share-it.com呢?它安全吗?他们是否也处理客户门户?

非常感谢。

我会用类似的系统去我见过的Nod32(这就是为什么我不再使用它,但仍然建议为其他人购买)。

应用程序有两种状态:演示全部。 您可以使用30个月的演示版本。

并且每个应用程序都有一个产品密钥,它是每天针对远程服务器进行验证。如果验证失败,应用程序将退回演示模式

如果验证服务器无法访问,显示您的用户信息是“验证服务器无法访问,请检查连接或手动验证”。然后在一个小时内再试一次。如果对..可以说.. 3天的应用程序尚未验证。它进入演示模式

如果用户,其中有连接问题点击通知气泡,他看到包含有关如何验证手动或按钮“再试一次”信息的视图。

对于手动验证你有一个产生代码(基于他的硬件数据),他可以在自己的网站与他一起产品密钥进入。并获得手动验证的号码。

我的2美分。

的常用方法,以防止用户只需在多台机器复制你的应用程序是“节点锁定” - 应用程序运行时检查,某些机器参数匹配记录在加密的许可证密钥或激活记录的值。以太网MAC地址是一个流行的锁定参数,但这不是一个好的选择,因为在某些系统上可以设置或伪造MAC地址。诸如Windows ID,计算机名称,或许用户登录名等参数的组合更安全。

发出牌照你要么从用户请求这些细节或让他们运行一个小工具,并将其写入到他们发送给你的文件。然后您可以使用许可证密钥对其进行加密,该许可证密钥还可以包含其他信息,例如试用版或订阅时间限制,功能配置信息等。

或者,所有这些都可以使用[产品激活] [2] 。当您的应用程序第一次运行时,它连接到托管的许可证服务器,检查它是否是有效的许可证,并自动读取其主机上的锁定参数的名称,然后它可以加密它们并将它们保存在本地文件中,它在那之后运行(所以应用程序在初始验证后不需要再次连接到服务器)。如果您使用激活路由,对您和您的用户来说更加方便。

你去无论走哪条路线,你需要考虑: - 集成与您所选择的电子商务提供商/支付处理器? - 如何处理没有互联网连接的用户? - 如何支持想要重新安置许可证的用户,可能是因为他们购买了新系统?你能确保他们在任何时候只有一个活动副本吗? (并且您可能还想限制他们可以重新安置许可证的频率)。 - 如果锁定到多个机器参数,您的锁定系统是否可以容纳升级系统的用户升级部分,因此可能会导致其中一个节点锁定参数发生更改? - 如果用户的系统崩溃了,他们如何在另一台机器上再次运行许可证? - 您如何颁发试用许可证? - 如何防止试图破解许可证保护的人? - 您今后可能想要在产品中配置功能,例如为不同类型的用户提供不同的价格点或功能的不同组合。你的许可证制度可以处理这个吗

所有这些问题,更具有当然已经考虑和商务主管许可证制度解决的。

我该如何强制应用程序在特定的PC上执行?是否存在 复杂?

您可以将他的计算机ID /密钥对存储在数据库中。

在这种情况下,我应该为每个用户创建一个新版本,因此 激活码将会解除阻止正确的版本?

不,您肯定不想为1000个用户创建1000个版本。

如果让我明白,每个配置文件都会有自己的编译文件 与激活码和排序的服务协议的信息 (即1年免费更新)一起。

使用正确的工具很容易管理它。您可以将每个密钥绑定到您的产品的特定版本范围(如v1.0.00 - v2.0.00)或指定密钥的有效期(SaaS方案)

是否可以仅分享所有用户都可以使用一个应用程序文件 ,它可以使用用户激活码激活。

是。它被称为浮动或网络许可证.LAN许可证服务器允许在公司网络中运行一些有限数量的产品实例。这种方法被企业客户广泛使用。

我应该在专用服务器(如)上实施客户门户吗?我 没有可能安装我自己的服务器。关于ISP上的虚拟服务器,你认为 是什么?

这取决于你的意思在自己的服务器“。您无法在共享主机上运行单独的守护进程/进程,您需要VPS或专用服务器。但是您可以使用市场上现有的解决方案。

为什么你需要自己实施激活系统?并自己运行服务器?因为它似乎它可能会出现一个更为复杂和昂贵。

ActivationCloudhttps://activation-cloud.com提供了一套很好的功能,可以满足ISV向家庭和企业用户销售软件的需求。考虑使用它。

阅读我的问题 “A licensing system for my (WinForms) application. Would this be secure enough? (Within reason)

我列出了一些可能性。

主要是,我注意到你希望程序只能在特定的PC上运行,为此我使用了一个函数,它为每台PC返回一个唯一代码,并要求它是产品密钥的最后5个字符。

希望这有助于。 :)