如何从计算机生成一个唯一的密钥用于许可我的应用程序

本文关键字:唯一 一个 密钥 用于 应用程序 我的 许可 计算机 | 更新日期: 2023-09-27 18:01:51

我想为我的Windows应用程序提供许可。因为,我在网上搜索我可以使用MAC地址。但与此同时,它也可以被欺骗。每个KEY都有一个问题,比如:

    CPU ID
  1. 主板ID
  2. 硬盘序列号

这个问题的解决方案是什么?

对不起,我的英语不好。

如何从计算机生成一个唯一的密钥用于许可我的应用程序

为什么你要把应用程序链接到计算机上呢?如果用户购买了你的应用程序,安装在他的机器上,然后突然决定他不再喜欢这台机器,并购买一台新的机器,如果你的应用程序许可证只与那台机器相关,这意味着他必须再次购买应用程序....

只是使用一个唯一的键生成器,有很多这样的例子,如果你不想在同一台机器上安装几个版本的应用程序,你可以在注册表中做一个记录。

这里有几个例子

http://www.codeproject.com/Articles/11012/License-Key-Generation

http://www.jagregory.com/writings/rhino-licensing/

如果您执行这种类型的许可,您必须预料到跟踪客户的许可将成为一项持续的管理工作。一旦你有了几百个客户,你会惊讶地发现你经常接到要求更换密钥的电话,或者客户可能会更换他们的整个机器,并且需要更新许可证才能在新机器上运行你的软件。在我工作的公司,我们几乎每天都接到这样的电话。

您还需要信任客户,如果您给他们一个新密钥,他们就会停止在旧计算机(或网络适配器)上使用您的软件。如果你一开始就不能相信他们会遵守许可证,你又怎么能相信他们会扔掉旧钥匙呢?

如果你没有计划如何支持这个管理活动,不要以这种方式授权你的产品。你只会给你的好客户带来不便,他们无论如何都会合作的。

尝试参考通过usb 加密狗许可的技术

标准PC上没有信息,您可以使用这些信息唯一地标识它。正如你所说,你最好的办法是使用组件的序列号。因为架构、Windows驱动模型等。是开放的,这些可以被欺骗。您还必须考虑到,如果这些组件失败,您的用户可能会更换它们,这可能导致您的许可证验证失败。

像手机这样的现代设备有唯一的可识别信息(例如:Android的设备ID)用于这些目的。

我建议你最好的选择是识别用户,而不是识别机器。如果可能的话,使用您从服务器端验证的用户名/密码组合。否则你将不得不冒险使用序列号。

你可以使用第三方解决方案,如AppStore/Market,每次应用程序启动时,它都会在服务器端进行验证。一个例子是与Windows Vista一起推出的微软数字锁,但它已经不再可用了。