2

我想知道如何将许可证密钥与我正在创建的软件相关联,类似于大多数公司(如 Microsoft 和其他要求安装其产品的密钥)所使用的软件。这样,除非许可证密钥是 Comprised ,否则我怎么能防止盗版软件。我在这里很天真,需要你们的一些指导,以便我可以查看这些并进一步进行。

4

1 回答 1

3

为避免密钥共享,您需要将密钥生成绑定到客户计算机的某些属性——“硬件锁”或“软件锁”。作为“硬件锁”,可以使用 MAC 地址、硬盘驱动器 ID(等)。有时会使用“软件锁”,为最终用户提供更多硬件升级自由。

所以这个方案是这样看的:软件生成客户发送给软件供应商的“请求密钥”= f(“硬件锁”) 。供应商通过keygen生成'授权密钥' = F('请求密钥')并返回给客户。当客户激活他的软件时,它会验证密钥if('authorization key' == F(f('hardware lock)) { okey, here we go } else { nope, key is invalid }

这种方法的缺点是黑客跟踪放入“激活密钥”字段的密钥流,并可以找到F(f('hardware lock')然后对F二进制代码进行一些“复制/粘贴”,创建keygen 并通过网络共享。

更好的方法是,如果黑客无法访问执行实际“授权密钥”生成的例程。例如,如果它位于远程服务器上。

反正没必要重新发明自行车,可以使用别人开发的解决方案,查看https://activation-cloud.com

当然,没有不能被黑客入侵的保护措施。问题是要付出多少努力才能做到。

于 2012-07-28T13:15:31.830 回答