【问题标题】:Simple software authentication for a C# app? [closed]C# 应用程序的简单软件身份验证? [关闭]
【发布时间】:2010-11-28 06:08:39
【问题描述】:

我希望使用我的软件的人不能将应用的副本发送给其他人。我想我可以通过这种方式使用私钥/公钥加密:向用户发送一个激活码,我将把它保存在 Web 服务器的数据库中。然后,用户第一次运行应用程序时,它会向服务器发送代码+有关他的硬件的一些信息。然后我会获取该信息,因为它是一个加密字符串,并使用服务器中的私钥对其进行解密,然后将解密的字符串发送回用户。该应用程序将存储此字符串并在每次应用程序运行时使用公钥对其进行加密,并且该应用程序将检查它是否与硬件信息 + 他的代码匹配。但我猜有一种更简单的方法可以做到这一点。我真的不需要那么多安全感。有什么建议吗?

编辑:实际上我的公钥/私钥技巧根本不起作用。数学上...

【问题讨论】:

  • 为什么它不起作用?听起来不错。
  • 无论您使用何种许可方案,请确保您也在程序集上使用了混淆!

标签: c# php .net licensing


【解决方案1】:

保护 C# 应用程序将非常困难。我会把一些琐碎的东西放在一起(向服务器发送一条带有一些唯一标识详细信息的消息,如果它不同,则发回一条“未经授权”的消息)。任何技术不错的人都可以打开 MSIL 并删除授权检查位,所以我不会花太多时间在上面。

【讨论】:

    【解决方案2】:

    实际上,创建序列化变量并在程序启动时将其保存在计算机上,因为它第一次运行,文件会丢失,如果丢失,然后将其触发到服务器,它是一个新用户,并且它会创建序列化文件,之后,如果不是第一次,序列化文件将被加载阻塞用户界面,隐藏序列化文件很容易,因为微软有很多文件夹,这会容易得多,因为用户的流量服务器将是最小的,只会发生一次..它只会在它启动查询让程序知道它不是第一次打开时才会发生......

    并且计算机的身份是不变的..因为序列化文件可能是唯一的..由您决定如何使其唯一...

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 2014-08-24
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2018-12-29
      • 1970-01-01
      相关资源
      最近更新 更多