我希望为我的Windows应用程序提供许可证。
我在网上搜索时发现可以使用MAC地址,但同时也可以被欺骗。
而且每个密钥都存在问题,例如:
- CPU ID
- MotherBoard ID
- HDD序列号
有什么解决方案吗?
很抱歉我的英语不好。
我希望为我的Windows应用程序提供许可证。
我在网上搜索时发现可以使用MAC地址,但同时也可以被欺骗。
而且每个密钥都存在问题,例如:
有什么解决方案吗?
很抱歉我的英语不好。
http://www.codeproject.com/Articles/11012/License-Key-Generation
如果你采用这种许可证方式,你需要预期会成为一个持续的行政烦恼,来跟踪你的客户许可证。一旦你拥有了几百个客户,你将惊讶地发现你会频繁接到电话请求更改密钥,否则客户可能更换整个计算机,需要更新许可证在新机器上运行你的软件。在我曾工作的公司里,我们几乎每天都会接到这些电话。
你还需要相信客户会停止在旧电脑(或网络适配器)上使用您的软件,如果你给他们一个新的密钥。如果你一开始就不能相信他们遵守许可证,那么你如何相信他们会丢弃旧密钥呢?
如果你没有计划如何支持这种行政活动,不要以这种方式许可你的产品。这只会给本来愿意合作的好客户带来不便。
试着参考通过加密狗许可的技术。
标准的个人电脑没有可用于唯一标识其的信息。如你所说,最好的方法是使用组件的序列号。因为架构、Windows驱动程序模型等是公开的,这些信息可以被欺骗。同时,你也需要考虑到用户如果更换了这些组件可能会导致你的许可证验证失败。
像手机这样的现代设备有唯一可识别的信息(例如Android的设备ID)用于这些目的。
我建议你最好的选择是识别用户,而不是机器。如果可能的话,使用用户名/密码组合,并从服务器端进行验证。否则,你就必须冒险使用序列号。
你可以使用第三方解决方案,例如应用商店/市场,它本质上在每次应用程序启动时都在服务器端进行验证。一个例子是Microsoft Digital Locker,它在Windows Vista中引入,但已不再提供。