我已经制作了一个应用程序,其中我希望应用程序在180天之后过期,但问题是如果我采用系统日期,任何人都可以改变它并开始工作,我也不能上网日期,因为很多时候用户将离线工作。那么如何进行试验呢?之后它会自我毁灭?我不能放任何其他DRM,因为我已经读过检查MAC地址是一个非常糟糕的DRM并且在经过Making commercial Java software (DRM)之后我意识到我必须使它变得有点简单。所以我想到的想法是,我计算了启动应用程序的次数,但是我在哪里将值存储在注册表中? (我已经读过:read/write to Windows Registry using Java)
我还阅读了Create a trial version of a Java application, with limited functionality和How to create a trial version of a Java program,但那里给出的答案并不令人满意。因为:
1.在一个答案中给出了使用“Rampart”,但这是一个付费应用程序,我不想使用它。
2.在另一个答案中,他们检查了系统日期,但正如我之前所说,我也不想使用它
3.一个问题和答案与功能有关,而不是我想要减少的功能
4.并且其中许多需要互联网,但我的客户可能不会一直使用它
我知道没有完美的DRM,每个人都可以破解。我在这里问的是我最好的投篮是什么? (注意:我的用户数量有限,我不会在线销售此应用程序)
更新:我认为这个问题不是主题,因为我真正要问的是如何让我的软件试用...我只是问怎么样?我知道它可以很容易破解但只是告诉我在java中设置试验的最佳方法是什么
答案 0 :(得分:4)
使用包含以下内容的软件包发送数据文件:
每次你跑:
这样:
显然 - 没有添加硬件 - 不可能涵盖所有基础,但我发现这个方案运作良好。
答案 1 :(得分:1)
如果没有互联网连接,如果最终用户在公司网络中并且使用带有活动目录的窗口(如果客户端是Windows,则大多数公司都有活动目录),有一种方法可以留下,使用活动目录服务器作为时间服务器。大多数用户可能会在其客户端窗口上更改时钟时间,但由于其他受影响的软件(邮件服务器等),他们不想更改服务器上的时间。 License4J可以在本地活动目录服务器上查找和检查日期/时间。
(披露:我为License4J工作)