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

时间:2013-09-08 12:18:05

标签: c# security web install activation-codes

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

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

请帮助建议最佳选择(如果有可能使用php / mysql,我会喜欢使用第一个选项,因为我对asp.net不好)

3 个答案:

答案 0 :(得分:1)

如果没有安装文件,您无法安装程序。您需要一些小的安装文件,可以从您的设置中下载实际的安装文件,这就是我看到大多数程序的安装方式。

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

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

验证如何工作是在安装程序之前安装文件需要用户插入验证密钥并将其发送到服务器。你的PHP脚本将搜索mysql表,如果它找到该键,它将告诉你的安装文件密码是好的,它会在mysql表中将该键标记为“used”。否则,用户必须重新输入密钥。

答案 1 :(得分:0)

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

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

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

  3. 这方面有很多信息可以解决这种关键保护的实际问题。

    Rgds,AB

答案 2 :(得分:0)

您可以执行以下操作:

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

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

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

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

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

  6. 在其他计算机上安装应用程序会更改用户密钥,应用程序将无法运行。