我开发了一个C#软件.
我已经为客户实施了一种使用单一许可证密钥升级软件的方法.
单个许可证密钥是(32个字符),基于一些不太可能改变的硬件东西(很多).
一切都很好.
但是现在我想实现企业许可证.
基本上我希望客户能够在只有一个密钥的不同(无限制)机器上许可软件(所以我不能使用硬件检查).
对此有什么办法?
我能想到一些事情:
>软件中的硬编码1许可证密钥始终有效
>根据要求为企业构建自定义程序,并使用硬编码的许可证密钥(不是我想做的事情)
>制作一些函数/算法/某些东西来检查输入的许可证密钥是否有效(并且仍然能够为每个企业使用不同的密钥,也就是32个字符长).
我认为最后一个选项将是首选.
但是,我无法想出一种方法来检查输入的许可证是否是有效的企业许可证.
PS
我不是在寻找一种方法来完全阻止我的应用程序的盗版,这只是实现企业许可证的一种简单方法.
最佳答案 根据我的经验,您应该选择能够为您的付费客户带来最小摩擦的解决方案.
人们要么为你的软件付费,要么不用,只要你有某种机制来验证许可证,它的强大程度并不重要.没有一件我能想到的软件你找不到工作的盗版软件,这在很大程度上使得这方面的所有努力都浪费了.
最让我烦恼的事情之一是盗版副本比付费版本更好.例如,虚拟CD / DVD软件Daemon Tools受到与您的声音有些相似的机制的保护.它生成一个机器和软件版本特定的密钥,通常是合法使用的麻烦.我拥有5-PC许可证,如果我想更新它,我必须去撤销旧版许可证,发布新许可证并重新注册更新的软件.重复每次安装.我经常考虑使用破解版本,因为它提供了一个更简单的升级路径,基本上只涉及安装软件.
我意识到你可能已经考虑了所有这些并且可能有不同意见,但你的指导原则应该是让付费体验击败盗版者.