我需要创建一个在30天后无效的简单应用程序。
我该怎么做?
有没有办法在30天后使用试用程序?
答案 0 :(得分:12)
30天后总会有办法使用试用程序。
答案 1 :(得分:11)
如果“最佳”意味着最不容易破解,那么实际上只有一种方法:使其成为基于互联网的“软件即服务”应用程序。如果您不提供访问权限,则表示他们不使用该软件。 如果是基于桌面的应用程序,则某些关键功能仍然必须位于某个位置的在线服务器上。
如果黑客在其本地计算机上拥有整个应用程序,可以以某种方式进行逆向工程和“破解”。解决这个问题的唯一方法是确保功能的某些部分永远不会在他们的机器上。
答案 2 :(得分:7)
我认为更好的解决方案是功能受限的应用程序 - 假设您可以执行基本操作,但可以利用您获得付费许可证的最佳功能。这样做有两件事 - 假设你的应用程序做得好并且对各种用户都很有趣。首先,您可以让更多人尝试使用您的应用。其次,你可以免费发布你的“精简版”来获得一些善意。
如果您确实需要进行限时试用,那么我会考虑让它将加密密钥写入注册表(windows)或点文件(linux)。此密钥可以编码到期日期。使用可逆加密可以让您恢复此值。使用密钥有助于防止某人生成自己的(有效)密钥。完全许可的应用程序可以使用相同的密钥机制,但加密允许永久使用的密钥值。
答案 3 :(得分:6)
从我对implementing-expiration-dates-in-an-application/1871218#1871218的回答:
执行此操作的最友好用户可能是跟踪用户使用您软件的天数。例如,每次程序启动时,您都可以将日期写入加密文件(除非文件中已存在该日期)。然后,一旦文件中有超过30个日期,就让用户知道是时候购买完整版本了。
Beyond Compare等真实产品使用此方案 - 非常适合安装产品的潜在客户,并且仅在30天内不使用它才能发现试用期已过期。
另外请记住,您的方案不一定非常完美,只需使其足够强大,以免用户破坏它。
答案 4 :(得分:3)
让程序在首次运行时从您的服务器请求密钥,并在每次程序启动时检查其有效性,并且每24小时检查一次。
答案 5 :(得分:1)
另一个选择是在下载应用程序时使用服务器端编译器。这可以将许可证密钥“注入”二进制文件。您可以在单独的文件中使用常量来执行此操作。然后可以将其与其他预先编译的文件链接。由于黑客需要对程序进行反编译,因此这种方法较慢但难以破解。