繁体   English   中英

如何保护我的C#程序免于未经授权安装在不同的系统上

[英]how to protect my C# program from being installed on different systems unauthorized

我对C#程序语言有点陌生,我想知道如何在未经我许可的情况下保护我的C#桌面应用程序免于在各种系统上重新授权。 我已经看到了一些可能的解决方案,但是请您提供一些建议

  • 创建一个网络激活系统,在该系统中,在每次安装之前都会发出密码/唯一代码
  • 创建一个在线安装系统,使人们无需下载安装程序即可直接从网站进行安装

请就采取的最佳选择提供建议(如果可以在php / mysql中使用,我会喜欢使用第一种选择,因为我对asp.net不太满意)

好吧,如果没有安装文件,您将无法安装程序。 您需要一些小的安装文件,该文件会从您的安装程序中下载实际的安装文件,这就是我看到的大多数程序正在安装的方式。

通常,在服务器上,您可以选择下载完整的安装文件(包含所有安装数据的大安装文件)和在线安装文件(安装期间需要Internet连接的小文件)。

而且,在服务器上使用php或asp.net也不是很重要,因为唯一重要的是脚本在服务器上的作用。

验证的工作方式是,在安装程序之前,安装文件将要求用户插入验证密钥,并将其发送到服务器。 您的php脚本将搜索mysql表,如果找到该键,它将告诉您的安装文件密码正确,并将在您的mysql表中将该键标记为“已使用”。 否则,用户将不得不重新输入密钥。

您问题的答案取决于您想要实施的保护级别。

  1. 最简单的方法是无需在线激活即可实施产品密钥保护:在这种情况下,应通过程序中包含的某些算法来选择/验证密钥。 这并不是一个很好的保护,因为同一密钥可能用于多个(理论上是无限的)产品安装。

  2. 在线产品密钥激活可以实现更强大的保护。 在这种情况下,您可以指定每个按键的激活次数(例如5次),从而防止同一按键被过度使用。

在这方面,有很多信息可以解决这种密钥保护的实际问题。

Rgds,AB

您可以执行以下操作:

  1. 安装并启动该应用程序后,该应用程序会根据物理系统属性(如MAC地址/序列号等)生成用户密钥。

  2. 提示用户输入相应的许可证密钥以激活产品。

  3. 用户使用Web应用程序或通过电话或电子邮件提供用户密钥并请求相应的许可证密钥。

  4. 您将具有一些算法,可以根据应用可以验证的用户密钥生成唯一的许可证密钥。

  5. 收到许可证密钥后,用户在应用程序中输入许可证密钥并开始使用它。

将应用程序安装在另一台计算机上会更改用户密钥,并且该应用程序将无法运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM