实施许可检查库

341*_*008 14 c++ licensing objective-c

我正在开发一个用C++/Obj-C编写的用于Windows和Mac的小型跨平台产品.我被要求为此实施许可模块.这项任务是为我们所有产品引入许可的雄心勃勃的项目的一部分.最后,我们将有一个完整的许可计划,我们将能够向我们的客户出售支持年度续订,许可级别等的许可证.我的问题是我不知道实施许可证检查器的第一件事.任何人都能指出一些方法吗?我可以研究哪些开源许可模块?

win*_*aed 17

我使用了部分密钥验证(PKV)系统,我在C#中用PHP生成器实现了这个.谷歌将提出各种点击,解释和实施; 但Brandon Staggs写了一篇很好的概述(虽然在Delphi中!),这里:

http://www.brandonstaggs.com/2007/07/26/implementing-a-partial-serial-number-verification-system-in-delphi/

PKV通过对密钥中的某些信息(许可证类型,序列号产品,日期等)以及用户名的散列和编码信息的散列进行编码来工作.大部分键实际上由多个一个char哈希组成.这个想法是你只检查这些哈希的一个子集.发布的确切子集可以随着时间的推移而改变某些安全性并防止某些类型的逆向工程.

我还会加密密钥以帮助模糊许可证中每个字符的含义.否则,有多个键的人可能会确定某些字符位置意味着某些事情("哦,字符3-4是序列号").这可能是你盔甲的一个缝隙!

您开发的任何许可证系统都将是不完美的.这将是可以破解的,如果你的产品很受欢迎,将被破解.然而,有一个强有力的论据,即存在一个许可证制度,以保持诚实的人诚实,并为稍微不诚实的人产生足够的障碍 - 但没有太多的障碍,以至于它变得太不方便(例如,我通常反对硬件锁定).那些破解你的系统的人可能无论如何也不会为此付钱.

  • 最后一段+1,它永远不会是完美的,但如果它足够坚硬就会好起来的. (2认同)