【问题标题】:Create a trial version of a Java application, with limited functionality [closed]创建功能有限的 Java 应用程序的试用版 [关闭]
【发布时间】:2012-10-17 12:16:48
【问题描述】:

我正在寻找有关如何实现我的 java 应用程序试用版的想法。大多数帖子都是关于创建一个在停止工作时有时间限制的试用软件。就我而言,我想创建一个功能有限的应用程序,并且可以通过购买产品来解锁应用程序的所有功能。我将感谢社区对以下几点的看法。这个问题的一个转折是使这个解决方案尽可能通用,以便它可以在 Mac 和 Windows 上运行。

我对此解决方案的方法是在应用启动时检查“注册”文件是否存在。如果存在有效的注册文件,则应用程序将完全正常运行。该文件将放置在用户的应用程序数据目录中。这样在 Windows 中卸载应用程序将不会触及该文件。另外,在 Mac 上,一般情况下删除 app 文件夹应该没有问题,除非用户安装了 AppCleaner 之类的软件,它会提示删除 ~/Library/Application Support 文件夹下的应用程序目录。

所以,这是我的第一个问题。对于已经购买了应用程序的用户,我应该如何处理删除注册文件的情况,社区的想法是什么?

我认为这也与首先如何完成注册/购买有关。这是我的第二个问题。我不会在软件中处理任何信用卡交易,我宁愿贝宝做这一切。所以,假设有人购买了软件后,我给了他们一个可以解锁软件的注册码。我首先担心的是任何拥有此注册密钥的人都可以解锁该软件。我该如何限制这个?想法?

这个话题可能需要一点讨论,我希望没问题。期待听到您的意见。

编辑:我只是想回到这篇文章并更新它,提到我最终在评估了 TrueLicense 和 License3j 之后,我选择了使用 TrueLicense。我仍在弄清楚如何使用它,因为文档并不那么容易。我正在尝试研究该示例,并希望我能尽快为我的应用程序启动并运行该示例。

【问题讨论】:

  • 请注意,如果它是用字节码编译的,它可能很容易破坏或绕过检查。
  • 用“Java License Manager”这个短语试试你最喜欢的搜索引擎——有很多选择。至于通过反编译字节码绕过许可的能力,看看 ProGuard。
  • 我觉得我不想太在意那些能想办法进入的黑客。

标签: java licensing trial


【解决方案1】:

最近我一直在对同一主题进行一些研究。我发现有必要实施许可证管理器。我为此找到了 TrueLicence 开源库和带有代码示例的 tutorial

...当使用 True License 或任何其他 Java 许可证管理器库时, 您将需要创建两个组件:

  • 软件许可服务器,每当客户购买您的软件副本时,它都会生成新的软件许可,并且
  • 软件许可客户​​端,它是您嵌入到 Java/Swing 客户端应用程序中以安装和验证许可的代码。

【讨论】:

    【解决方案2】:

    您可以使用 license.properties 文件,该文件的密钥/令牌将在每次软件启动时被提取。 该软件将具有一些拦截器代码,该代码将从 license.properties 文件中读取密钥/令牌并将其解密并生成一个值。 因此,当用户购买您的软件时,您会向他发放一个新令牌。现在这个令牌在解密时会产生一些与通常不同的值,因此您将解锁其余功能。

    您可以在网络上搜索 100 多种加密算法并将它们用于您的软件,但基本思想是这样的。

    【讨论】:

    • 我不认为我完全理解这种方法。在我看来,通过这种方法,用户可以轻松地在任何机器上使用相同的令牌。我错过了什么?
    • 您正在寻找产品中的单用户许可功能。正如 Bancer 指出的那样,True License 是一个很好的探索工具,否则您必须设置自己的许可服务器,该服务器可以检查有多少机器正在使用相同的许可证。为此,您的 java 代码可以发送您的产品首次获得许可的机器的 macId。
    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2013-09-03
    • 2013-01-25
    • 2013-06-13
    • 2012-03-09
    • 1970-01-01
    • 2014-02-26
    • 2011-04-17
    相关资源
    最近更新 更多