保存激活密钥的位置

时间:2009-09-01 05:57:58

标签: c# save key

我正在使用C#并拥有用户输入的密钥以激活我的程序。我不希望用户在输入密钥后能够看到密钥。您对如何/在何处储存它有任何建议吗?

5 个答案:

答案 0 :(得分:5)

您可以将密钥另存为单独的文件。加密密钥并保存。因此,即使用户试图篡改它,您也可以停用该应用程序。

您可能对codeplex中的这个项目感兴趣:http://licenser.codeplex.com/

编辑:有些问题需要您检查。

  1. Where should I store my activation key

  2. Best way to generate activation codes for software?

  3. Best activation key software for .NET application?

答案 1 :(得分:1)

忘记尝试隐藏保存许可证密钥的位置 - 您将无法阻止确定的用户,如果您尝试将许可证信息存储在“奇怪”的位置,您将只会惹恼系统管理员。忘记尝试存储在正在运行的可执行文件中的所有内容,很难以万无一失的方式执行,并会触发大量的防病毒软件。

如果您想要防篡改的东西,请选择其中一种商业解决方案;抱歉,如果这听起来很苛刻,但是你 会想出任何甚至远远难以打破的东西,考虑到你在问这样的问题。

答案 2 :(得分:0)

你当然可以在Excutable的资源中存储一个密钥,它的程序非常长,有几个API可用,比如OpenResource,GetResourceData和UpdateResource,除非你安装了visual studio工具,否则资源不容易访问。

但您无法修改当前正在运行的可执行文件的资源,但您可以创建不同的激活程序,可以加载主可执行文件,修改资源并保存它。

答案 3 :(得分:0)

假设Windows计算机正在运行您的应用程序,您还可以使用注册表来存储加密密钥(可能是MD5?)。

这样它就不在用户可以查看的“文件”中(尽管可以被用户查看/更改/删除)。
在我看来,用户(标准的...)往往不会在注册表中查找 - 您可以在那里隐藏您的密钥。

实际上,@ Shoban的第一个链接where-should-i-store-my-applications-activation-key对这个问题有更多的讨论 - 你应该阅读它......

答案 4 :(得分:0)

我知道这更像是加密密钥 - 但是windows key container呢?