我已经开发了一个基于Java的桌面应用程序,我想将其与产品密钥一起分发,这样,当输入正确的密钥时,应用程序将被激活。因此,每个用户的产品密钥应该是不同的。我如何在Java中实现这个概念。提前感谢
发布于 2012-05-08 13:56:32
这取决于您希望您的密钥安全性有多强。
一种非常简单的方法是只创建用户电子邮件地址的散列,并将其作为密钥提供给用户。应用程序可以询问用户的电子邮件地址和密钥,然后重新创建哈希码,以确认密钥对于该用户是正确的。
这显然不能打败一个坚定的攻击者..。然而,一个坚定的攻击者将能够击败您设置的任何其他计划。如果您想要做的是确保注册和防止随意复制,这种方案应该足够好。
发布于 2012-05-08 14:03:37
我认为你可以找到处理器或硬盘的序列号,这意味着处理器序列号和硬盘序列号对于每台机器都是唯一的,所以你的程序应该获得这些序列号中的任何一个,并在上面应用一些算法来生成产品密钥。这是在java中找到处理器和硬盘序列的链接。
http://www.rgagnon.com/javadetails/java-0580.html
希望这能对你有所帮助。
发布于 2012-05-08 14:08:07
我听说过的一种方法是为每个副本分配一个序列号,有些使用客户名称。然后使用非对称密钥计算密钥签名。您的程序可以使用公钥验证签名。此QA更详细地回答了您的问题。
https://stackoverflow.com/questions/10493246
复制相似问题