我希望在共享软件的基础上实现我的软件,以便用户 给出试用软件的最长试用期(比方说)30天。在购买时,我打算给用户一个随机生成的密钥,输入时 再次启用该软件。
我以前从来没有走过这条路,所以任何建议或反馈或指向“标准”方法的指示都将非常感激。
我不期望用户通过更改系统日期或类似的东西来作弊,尽管这可能值得考虑。如果此话题出现过,请道歉。
我希望在共享软件的基础上实现我的软件,以便用户 给出试用软件的最长试用期(比方说)30天。在购买时,我打算给用户一个随机生成的密钥,输入时 再次启用该软件。
我以前从来没有走过这条路,所以任何建议或反馈或指向“标准”方法的指示都将非常感激。
我不期望用户通过更改系统日期或类似的东西来作弊,尽管这可能值得考虑。如果此话题出现过,请道歉。
关于随机生成的密钥,如何验证密钥是否合法,或者如果密钥是伪造的,如果它实际上是随机的?看看文章“实施部分序列号验证系统“因为它非常好并且易于用任何语言实现。
关于时间试验,基本的解决方案是将主要的可执行文件创建时间与当前系统时间进行比较,并根据差异进行操作。这假定您的安装程序将文件创建时间设置为安装时间,而不是保留编译它的时间! :)
关于随机生成的密钥,如何验证密钥是否合法,或者如果密钥是伪造的,如果它实际上是随机的?看看文章“实施部分序列号验证系统“因为它非常好并且易于用任何语言实现。
关于时间试验,基本的解决方案是将主要的可执行文件创建时间与当前系统时间进行比较,并根据差异进行操作。这假定您的安装程序将文件创建时间设置为安装时间,而不是保留编译它的时间! :)
如果当前日期神奇地小于安装日期等,也要注意时间的根本变化。
解决此类日期锁定的一种方法是在安装之前将日期更改为将来的年份。因此,您应该检查今天的日期是否不低于安装日期。
如果您的软件非常有用,那么在您看到第一个订单之前,您肯定会在P2P上找到破解的副本。无论您要实施的许可证执行代码有多复杂,都会发生这种情况。
也就是说,只是在某处存储首次运行日期(可能是注册表,如果在Windows上),并在30天后拒绝启动,或者只是打开一个提醒窗口。
不要担心作弊者,无论如何,他们都会找到解决方法。担心你诚实的客户,并努力不做 其 生活更加艰难。
Eric Sink写了更多关于此的内容 这里(第4节)。
在第一次启动时,您可以将实际日期存储在某处。
每次下面开始,你会查找存储的日期,如果它存在,你读它,如果它是第一次启动后超过30天,你停止该程序。