5

现在我们正在开发一个基于 Windows 的小型应用程序。我们以前提供试用版许可证,有效期为 30 天,30 天到期后,产品将无法使用。

现在这是我的问题:

想象一个客户在 1 月 1 日下载并安装了该应用程序,到 2 月 1 日,试用期将结束。现在1月31日,如果他再把系统时间改成1月1日,系统就从头开始计时,所以客户可以通过简单的改变系统时间来延长试用期。

并且根据社区的建议,我们可以检查互联网/日期时间,但作为一个小问题,我们不能通过服务器随机验证许可证,如果用户离线并更改他的系统日期时间,那么就会出现问题再次。有没有其他方法可以解决这个问题?

我已经检查过这个问题

解决这个问题的最佳方法是什么?该产品是一个 C# 应用程序。

4

2 回答 2

10

根据您的要求,我所看到的,您无法检查在线服务器的日期。这对于离线系统来说是非常明显的。

所以,你需要做几件事——

  1. 以高加密数据的形式设置注册日期和到期日期,并将其保存在注册表数据库中的某个位置。

  2. 当应用程序每次打开时,获取最新的时钟日期并将加密数据保存在注册表中。

  3. 确保检查时钟日期和最后使用日期。如果上次使用日期 < 时钟日期,则一切正常,但如果使用日期>时钟日期,则用户已更改时钟日期。所以,不要更新注册表。

  4. 一旦 lastusagedate 达到到期日期,就会弹出一条消息“您的试用版已过期。”。

希望这可以帮助。

干杯

于 2013-05-13T20:00:09.660 回答
6

Probably the best possible solution would be to have an online server for verification of the licensing details. If you let your application be dependant over client machine's data then there is always a chance that they will break it. But for that your client must have internet access

于 2013-03-26T07:37:53.343 回答