2

我创建了一个基于 Windows 的软件应用程序。很快我就会让它活起来。意味着我的客户从我的网站下载后就可以使用它。还要提一下,我制作的软件只能使用我提供的密钥。最初它将是免费试用的。

我在这里生成 35 位密钥,它是唯一的。意味着一旦用户向我请求密钥并且我将密钥发送给他/她,他/她就可以使用我的应用程序。但真正的问题来自这里。

我希望代码只使用一次。

例如:如果用户下载了我的应用程序,他可以使用密钥来使用我的应用程序,但其他人不能使用相同的密钥。假设我的密钥是 xxx,相同的代码 xxx 不应该适用于任何其他下载了我的应用程序的人。只是为了让软件只供真正的用户使用。

我也通过了这个链接

http://social.msdn.microsoft.com/Forums/zh/winformssetup/thread/301913a0-ecf9-4095-8d66-a3f4baeea6eb

丹尼史坦顿

我还没有达到我的要求。

首先,我想获取注册下载我的应用程序的人的 IP 地址,并基于此我可以限制我的密钥仅由其 IP 地址将存储在我的数据库中的人使用。但我认为这将是错误/不必要的过程。并且要使用我的应用程序,每次都应该插入个人网络电缆。但这不能解决我的目的。

其次,我想创建一个应用程序 ping 到我的服务器或我的进程。

就像最初当用户运行应用程序(在线或离线)时,应用程序应该可以工作,但是一旦他将网络电缆/插头连接到网络,就应该向我的服务器或我提供警报。从我这边,我可以检查用户是否正在使用我提供给他的密钥。如果无论哪种方式,用户都不是真实的,我应该能够阻止他再使用我的应用程序。在我这边,我决定将密钥存储在我提供的数据库中。并且每个请求的键都在另一个表中。我不确定我是否走对了。但到目前为止,这是我脑海中浮现的事情。

但总而言之,最后我希望一个密钥只能由一个用户使用。只是为了避免一百万不同的用户通过一个键使用我的应用程序。

我不确定我提供的任何想法。

现在有什么方法可以实现吗?

4

2 回答 2

3

获取他机器的硬件指纹并据此生成密钥。您的软件应检查是否为该特定机器生成了密钥。但是,这需要在线激活您的软件。你可以通过两种方式做到这一点

  • 让用户启动未激活的应用程序并显示他发送给您的硬件指纹。然后您返回他输入的激活密钥。
  • 您的应用程序自动连接到激活服务并发送指纹、接收激活密钥并存储它

另一点是包括有关硬件的几个组件的信息,并允许用户更改一个或几个。例如采集硬盘序列号、MAC 地址、主板序列号、一些CPU 信息(例如系列名称)的指纹,您应该允许用户升级或添加另一个硬盘。

有关于获取硬件信息的主题。

于 2012-08-10T11:44:22.720 回答
0

我认为您必须做出选择,您的密钥系统越强大,对您的用户来说就越难。

IE:一个好的系统是生成一个硬件密钥,所以它只安装在注册的计算机上。尽管效果很好,但购买新计算机的用户可能会遇到麻烦,要求您注册新的硬件密钥。

而且,如果您只给他们一个密钥(如序列号),那么在另一台计算机上使用它可能会很容易。

所以基本上,如果你不认为很多用户会因为软件不会被很多人使用而放弃他们的密钥,我就不会获得“超强”硬件认证。

另外,不要注册IP地址,每个拥有动态IP的人都会讨厌你这样做。

于 2012-08-10T11:45:25.513 回答