如何生成和验证软件许可证密钥?
我目前正在开发产品(使用C#开发),该产品可以免费下载和安装,但版本非常有限。要访问所有功能,用户必须支付许可费并获得密钥。然后,该密钥将输入到应用程序中以“解锁”完整版本。
由于通常使用这样的许可证密钥,我想知道:
- 通常如何解决?
- 我如何生成密钥,应用程序如何对其进行验证?
- 我还应该如何避免让密钥在Internet上发布并由尚未支付许可证的其他人使用(该密钥基本上不是“他们的”密钥)。
我想我也应该以某种方式将密钥绑定到应用程序的版本,以便可以为功能版本中的新密钥收费。
在这种情况下,我还有什么需要考虑的?
回答:
注意:您不能阻止用户进行盗版,而只能让诚实的用户更容易地做正确的事。
假设您不想为每个用户做一个特殊的构建,那么:
- 为您自己生成产品的密钥
- 取用户名
- 将用户名,密钥和哈希与(例如)SHA1关联
- 将SHA1哈希作为字母数字字符串解压缩。这是个人用户的“产品密钥”
- 在程序内,执行相同的哈希,然后与产品密钥进行比较。如果相等,则确定。
但是,我再说一遍:
我最近读到,这种方法在密码学上不是很好。但是这种解决方案已经很弱了(
),所以我认为这种发现不会使解决方案在任何程度上失效。
只是以为我真的应该提这个;如果您打算从中得到其他东西,请当心。
以上是 如何生成和验证软件许可证密钥? 的全部内容, 来源链接: utcz.com/qa/423678.html