正如标题所暗示的,如果我想创建我的程序的试用版本,允许用户运行它一段时间,直到它到期,我感兴趣的是这个过程有多“好”。而且,一个典型的用户不会是一个特别“懂计算机”的人--我认为这是一个重要的假设。
所以,下面是一个伪代码:
at program installation:
write encrypted (time_left = infinity) to registry
at every program run:
calculate time_left = licence_limit_time - current_time
(if registry.time_left doesnt extst)
abort program
(else)
(if time_left >= registry.time_left)
abort program
(else)
write time_left to registry 程序安装的第一步确保删除注册表项将导致程序不可用。
这个过程的要点是,它应该不受用户简单地更改系统时间的影响(除非我在这里遗漏了一些重要的东西)。
欢迎提出任何意见和建议。
编辑:另外,假设程序是编译的。
发布于 2016-07-05 18:14:58
我不确定time_left >= registry.time_left有什么意义。如果您可以计算time_left,那么您就不需要它的注册表副本了。如果你信任注册表副本,那么你不需要计算。这两种方法并没有真正改善任何事情。
具体地说,回滚注册表项和日期将解决您的保护问题。
这就是答案。以下是对该想法的评论:
实际上,您正在尝试实现DRM。你不能做对所有情况都有效的事情,你可以让一个有决心的人拖延几个小时。您的时间可能会更好地用于实现最简单的保护(对照日期)和改进产品。
https://stackoverflow.com/questions/38200272
复制相似问题