如何为c程序生成激活码?

如何为c程序生成激活码?,c,linux,installation,C,Linux,Installation,我想向客户销售一个程序,但我想让一个程序只需一个lisence代码就可以在一台服务器上运行,如果客户想在其他服务器上运行该程序,他需要购买更多的激活代码 那么有没有一种生成激活码的好方法呢?我想它将与一个密码和服务器mac地址相关 顺便说一句:我只需要一个简单的方法,因为我的客户不是技术人员,没有完美的方法可以做到这一点,因为虚拟化基本上可以模拟任何环境的惊人细节。许可证文件、已签名的可执行文件和远程许可证服务器都是可选的,但对您的客户来说压力很大。我建议您与客户签订许可协议,并信任他们。您没有

我想向客户销售一个程序,但我想让一个程序只需一个lisence代码就可以在一台服务器上运行,如果客户想在其他服务器上运行该程序,他需要购买更多的激活代码

那么有没有一种生成激活码的好方法呢?我想它将与一个密码和服务器mac地址相关


顺便说一句:我只需要一个简单的方法,因为我的客户不是技术人员,没有完美的方法可以做到这一点,因为虚拟化基本上可以模拟任何环境的惊人细节。许可证文件、已签名的可执行文件和远程许可证服务器都是可选的,但对您的客户来说压力很大。我建议您与客户签订许可协议,并信任他们。您没有理由不采用某种定期审核,但归根结底,这是一个信任与便利的问题。

没有完美的方法可以做到这一点,因为虚拟化基本上可以模拟任何环境的惊人细节。许可证文件、已签名的可执行文件和远程许可证服务器都是可选的,但对您的客户来说压力很大。我建议您与客户签订许可协议,并信任他们。你没有理由不采用某种定期审计,但归根结底,这是一个信任与便利的问题。

我可以给你一个粗略的想法,但是,这并不容易


让一台服务器运行,在程序开始时,让它用激活码和生成的哈希码(对程序的每个编译都是唯一的)查询您的服务器,并让您的服务器检查以前是否查询过组合。

我可以给您一个大致的想法,但这并不容易


让服务器运行,并在程序开始时,让它使用激活码和生成的哈希码(程序的每次编译都是唯一的)查询服务器,并让服务器检查之前是否查询过组合。

对于[产品激活][2],有成熟的解决方案,他们已经解决了你需要思考的问题,包括:

  • 在没有Internet连接的系统上安全地激活许可证
  • 允许用户安全地重新定位许可证
  • 允许在虚拟系统上安装,而无需启用无限复制
  • 当用户的系统崩溃时,您如何在另一个系统上重新获得其许可证
  • 防止各种黑客攻击
  • 锁定时使用什么?正如Alex所说,MAC地址不是一个好的选择,即使它是一个普通的地址。系统参数的组合是最好的,但是您如何优雅地处理进行小型系统升级的用户
  • 安全的试用许可证,无论是时间限制、功能限制还是两者兼有
  • 配置产品功能
  • 授权升级。。。 ……还有更多

对于[product activation][2],已有成熟的解决方案,它们已经解决了您需要考虑的问题,包括:

  • 在没有Internet连接的系统上安全地激活许可证
  • 允许用户安全地重新定位许可证
  • 允许在虚拟系统上安装,而无需启用无限复制
  • 当用户的系统崩溃时,您如何在另一个系统上重新获得其许可证
  • 防止各种黑客攻击
  • 锁定时使用什么?正如Alex所说,MAC地址不是一个好的选择,即使它是一个普通的地址。系统参数的组合是最好的,但是您如何优雅地处理进行小型系统升级的用户
  • 安全的试用许可证,无论是时间限制、功能限制还是两者兼有
  • 配置产品功能
  • 授权升级。。。 ……还有更多

你对这个问题做过研究吗?我想这更多地属于程序员,但你可能会遇到同样的问题。欺骗MAC地址很容易:你可以让程序从主机系统收集一些独特的信息(MAC,硬件信息),然后从信息中生成哈希字符串。之后,您可以为该特定散列生成实际的“注册/串行密钥”。这一体系有令人讨厌的缺点。例如,硬件升级后,唯一哈希和串行密钥不匹配,因此必须有一些系统来备份。请记住,几乎所有的东西都可以进行逆向工程,而且很难创建防弹解决方案。阿萨巴斯卡:MAC很容易被欺骗。@Dhaivat Pandya这就是为什么我也提到了其他
硬件信息。也许我在前面的评论中表达得有点不清楚。。甚至有些主板也允许直接从bios更改MAC地址。你对此做过任何研究吗?我想这更多地属于程序员,但你可能会遇到同样的问题。欺骗MAC地址很容易:你可以让程序从主机系统收集一些独特的信息(MAC,硬件信息),然后从信息中生成哈希字符串。之后,您可以为该特定散列生成实际的“注册/串行密钥”。这一体系有令人讨厌的缺点。例如,硬件升级后,唯一哈希和串行密钥不匹配,因此必须有一些系统来备份。请记住,几乎所有的东西都可以进行逆向工程,而且很难创建防弹解决方案。阿萨巴斯卡:MAC很容易被欺骗。@Dhaivat Pandya这就是为什么我也提到了其他
硬件信息。也许我在前面的评论中表达得有点不清楚。。甚至有些主板也允许直接从bios更改MAC地址。是的,我认为这完全取决于您的客户和业务模式。对于许多企业工具,许可问题是一个重要问题