【问题标题】:Implementing licensing checking library [closed]实施许可检查库[关闭]
【发布时间】:2011-02-08 14:02:03
【问题描述】:

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

【问题讨论】:

    标签: c++ objective-c licensing


    【解决方案1】:

    我使用了部分密钥验证 (PKV) 系统,并且我已经使用 PHP 生成器在 C# 中实现了这一点。谷歌会想出各种命中、解释和实现;但是 Brandon Staggs 写了一个很好的概述(尽管是在 Delphi 中!),在这里:

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

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

    我还将加密密钥以帮助混淆许可证中每个字符的含义。否则,拥有多个键的人可能会确定某些字符位置意味着某些事情(“哦,字符 3-4 是序列号”)。这可能是你盔甲上的一个缺口!

    您开发的任何许可系统都将是不完美的。它将是可破解的,如果您的产品受欢迎,它将被破解。然而,有一个强有力的论点认为,许可证系统的存在是为了让诚实的人保持诚实,并为稍微不诚实的人设置足够的障碍——但没有太多的障碍会造成太大的不便(例如,我通常反对硬件锁定)。那些入侵您系统的人可能无论如何都不会为此付费。

    【讨论】:

    • 最后一段+1,它永远不会是完美的,但如果它足够难,它会没事的。
    • 我喜欢你的解释,尤其是最后一段。它总结了一切!
    猜你喜欢
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多