创建仅在预定义试用期(评估期)内工作的程序的最佳方法是什么?

我需要创建一个30天后无法运行的简单应用程序。

我怎样才能做到这一点 ?

有没有办法在30天后使用试用程序?

30天后总会有一种方法可以使用试用程序。

如果“最好”意味着最不容易破解,那么实际上只有一种方法:使其成为基于互联网的“软件即服务”应用程序。 如果您不提供访问权限,则表示他们不使用该软件。 如果它是基于桌面的应用程序 ,那么某些关键function仍然必须在某个地方的在线服务器上。

如果黑客在其本地计算机上拥有整个应用程序, 则可以以某种方式对其进行逆向工程和“破解”。 克服这个问题的唯一方法是确保function的某些部分永远不会在他们的机器上。

我认为更好的解决方案是function受限的应用程序 – 假设您可以执行基本操作,但可以利用您获得付费许可证的最佳function。 这有两件事 – 假设你的应用程序做得好并且对各种用户都很有趣。 首先,您可以让更多人尝试使用您的应用。 其次,你可以免费发布你的“精简”版本,从而获得一些善意。

如果你真的需要进行限时试用,那么我会考虑让它将加密密钥写入注册表(windows)或点文件(linux)。 此密钥可以编码到期日期。 使用可逆加密可以让您恢复此值。 使用密钥有助于防止某人生成自己的(有效)密钥。 完全许可的应用程序可以使用相同的密钥机制,但加密允许永久使用的密钥值。

从我对application-expiration-date-in-an-application / 1871218#1871218的回答 :

用户最友好的做法是跟踪用户使用软件的天数。 例如,每次程序启动时,您都可以将日期写入加密文件(除非文件中已存在该日期)。 然后,一旦文件中有超过30个日期,让用户知道是时候购买完整版本了。

Beyond Compare等真实产品使用此方案 – 非常适合安装产品且30天内不使用它的潜在客户发现试用期已过期。

另外请记住,您的方案不一定非常完美,只需使其足够强大,以免用户破坏它。

让程序在首次运行时从服务器请求密钥,并在每次程序启动时检查其有效性,并且每24小时检查一次。

另一个选择是在下载应用程序时使用服务器端编译器。 这可以将许可证密钥“注入”二进制文件。 您可以在单独的文件中使用常量来执行此操作。 然后可以将其与其他预先编译的文件链接。 由于黑客需要对程序进行反编译,因此这种方法速度较慢但难以破解。