2

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

  • 创建一个网络激活系统,在每次安装之前发布一个 pin/唯一代码
  • 创建一个在线安装系统,允许人们直接从网站安装而无需下载设置

请就最佳选择提供建议(如果可以使用 php/mysql,我很乐意使用第一个选项,因为我不擅长使用 asp.net)

4

3 回答 3

2

那么你不能安装没有安装文件的程序。您需要一些小的安装文件来从您的安装程序中下载实际的安装程序文件,这就是我看到大多数程序正在安装的方式。

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

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

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

于 2013-09-08T12:36:08.333 回答
0

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

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

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

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

Rgds, AB

于 2013-09-08T12:28:05.853 回答
0

您可以执行以下操作:

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

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

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

  4. 您将有一些算法从应用程序可以验证的用户密钥生成唯一的许可证密钥。

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

在不同的机器上安装应用程序会更改用户密钥,应用程序将无法运行。

于 2013-09-08T12:44:15.747 回答