2008-10-06 33 views
11

我希望在共享软件的基础上实现我的软件,因此用户在尝试软件的最长试用期(例如30天)时可以使用 。在购买时,我打算给用户一个随机生成的密钥,当输入 时再次启用该软件。在C++软件中引入共享软件的限制

我从来没有在这条路线之前,所以任何意见或反馈或指向'标准'如何做到这一点的方式将不胜感激。

我不希望通过更改系统日期或类似的东西来欺骗用户,尽管这可能值得考虑。道歉,如果这个话题出现过。

回答

5

关于随机生成的密钥,您将如何验证密钥是否合法,或者如果某个密钥实际上是随机的,则该密钥是假的?看看文章“Implementing a Partial Serial Number Verification System”,因为它非常好,并且易于在任何语言中实现。

关于时间测试,基本的解决方案是比较您的主要可执行文件创建时间和当前系统时间,并根据差异采取行动。这假设您的安装程序将文件创建时间设置为安装时间,而不是保留您编译它的时间! :)

+0

其实史蒂夫,是的,你是对的,我并不是指“随机”键。 – AndyUK 2008-10-06 11:35:12

1

第一次启动时,您可以将实际日期存储在某处。
接下来的每一个开始,您查找存储的日期,如果它存在您阅读它,如果它是第一次启动超过30天后,您停止该程序。

1

请参阅this library

说明:

将任何应用程序到时间限制的共享软件。生成序列号以注册它。一个函数库提供了一个灵活的锁定系统和固体加密。易于实施。支持VB,C++,Delphi,其他语言。

3

如果你的软件真的很有用,你一定会在看到你的第一个订单之前在P2P上发现破解的副本。无论您打算实施的许可证执行代码有多复杂,都会发生这种情况。

也就是说,只是将首次运行日期存储在某处(可能是注册表,如果在Windows上)以及30天后拒绝启动,或者只是打开提醒窗口。

不要担心作弊者,无论发生什么,他们都会找到解决方法。担心你的诚实客户,并尽量不要让他们的生活变得更难。

Eric Sink已经撰写了更多关于here (section 4)的文章。

3

如果当前日期魔术般少于安装日期等,还要小心从根本上改变的时间。

解决此类型日期锁定的一种方法是在安装之前更改日期,以便将来可以使用多年。所以你应该检查一下,今天的日期不会少于安装日期。