我正在尝试为我的程序创建一个产品密钥注册器。我希望产品密钥在数据库或字典类型的东西中,我可以每天制作新的密钥,而无需将它们放入程序中,并在每次重新构造它们。我不知道从哪里开始,所以如果有人有任何想法,请把它们张贴出来
谢谢,
凯文
发布于 2009-11-22 05:48:52
您可以使用Advanced Installer。他们有一个内置的许可系统。
这有点贵,但从长远来看,它会帮你省钱。当然,你也可以试着自己做一个。自包含的注册比检查数据库的注册更具挑战性。
发布于 2009-10-17 17:54:25
查看Microsoft提供的共享软件初学者工具包(免费)。
http://blogs.msdn.com/danielfe/archive/2005/07/10/437293.aspx
发布于 2009-10-17 19:39:57
一开始就让事情变得简单。如果你需要更多的复杂性,或者更强的安全性,那么在你开发了你的基本框架之后再去做。
第一步。看看一些简单的加密算法,比如微型加密算法。熟悉使用单个密钥加密和解密文件。
http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm
下一步。您将需要大量的密钥、存储它们的数据库以及与它们关联的某种类型的客户id。首先,让我们假设客户id是一个从100000开始的6位数字,密钥是128位十六进制格式,数据库是一个简单的文本文件。此时,您应该可以编写一个程序来为下一个100个客户生成一批密钥。
第三步。现在您有了一个数据库,因此可以设置一些脚本或应用程序,以便您可以加密特定的文件,生成多个副本,每个副本对应一个客户ID,并使用其密钥进行加密。
第四步,编写一个简短的简单应用程序,获取一个文件,使用密钥对其进行解密,然后加载并运行生成的可执行文件。应用终止后,删除解密后的文件。
现在,用于解密和运行的小应用程序必须以某种方式生成多个版本,每个客户一个版本,他们的密钥在适当的地方。最好的方法是生成一个与密钥大小相同的随机数,并将其作为常量放入代码中。然后编译它。此时,像grep这样的工具可以找到它在可执行文件中的位置。编写另一个小应用程序以读取解密程序应用程序用真正的密钥替换标签,并写出您将与匹配的解密应用程序一起分发的解密器版本。
在此之后,您可能希望使用比TEA更好的解密算法,但不要使用与出口法律冲突的太强的算法。
请注意,所有这些都不能阻止有决心的小偷,但它应该防止随意的小偷,你会学到很多东西。如果应用程序将其自身的关键部分存储在加密的USB密钥中,则可以获得更好的安全性,这样硬盘驱动器上就永远不会有解密的副本。请记住,任何时候你认为你已经想出了一种方法来提高加密或代码保护,你很可能是错的。比我们伟大得多的人,他们一生都在研究加密,一般规则是,当你稍微偏离公认的算法和用法时,你最终会降低而不是增加安全性。
https://stackoverflow.com/questions/1582243
复制相似问题