30

我想使用 PayPal 出售我的 Java 应用程序。收到付款后,客户会收到我的应用程序的一次性下载链接。

我的问题是,如何防止人们将 .jar 文件发送给他们的朋友/将其上传到互联网上?

显然,我需要在应用程序中进行某种检查,只允许它在一台计算机上运行。这是另一个问题,我不希望客户在一台计算机上受到限制,他们应该能够在家中运行它并工作等。

也许某种 cd-key 可以解决问题?那里有 Java 的 cd-key 资源吗?或者我应该建立自己的算法?还有一个问题,逆向工程..

请帮我解决这个问题:)

4

6 回答 6

33

最常见的处理方式是:客户给你钱,你生成一个唯一的解锁密钥并将其提供给客户。密钥应该是一个有效的解锁密钥,并且它应该对用户的识别信息进行编码。客户可以使用该密钥在他们喜欢的任意数量的计算机上安装,或者在许可证允许的情况下进行安装。

不要担心逆向工程。你的产品,如果它很受欢迎,就会被盗版——如果你足够努力的话,你会在网上找到解锁钥匙。如果你喜欢,你可以把它当作一种恭维——有人喜欢你的软件,以至于偷了它。冷酷的安慰,我知道,但另一种选择是与海盗进行军备竞赛,你不会赢的。最终,只有百分之几的人会窃取软件,而你对此无能为力。如果您的方案足够强大,您可以使用密钥的标识信息来追踪谁首先释放了密钥。

于 2010-09-05T18:44:14.817 回答
9

实际上有许多许可证管理解决方案可以提供帮助,但真正的问题是它们都可以被破解。我个人试过最贵到最便宜的。最后我自己动手了,每次运行软件时,我都会根据服务器中记录的详细信息检查软件的 pc 详细信息(mac id 等)。因为我的软件和互联网紧密相连,所以没关系,但我相信它会在这些日子里被破解。

您可能需要定期对 Internet 进行监管,并找出您的软件在哪里被盗版,这与人们普遍认为的相反,在大多数情况下您实际上可以阻止盗版。只需向下载网站提供 DMCA(大多数都会遵守),您将能够在大约 80% 的情况下删除您的软件。我已经在我的软件上完成并体验了它。有些人不删除,但我发现在我这样做的 1.5 年里,我的销售额有所提高。

我还使用了一项服务——http: //spotpiracy.com,它可以帮助我在自己的手动研究之外找到这些链接(我有一个专门从事此工作的人)。:)

于 2012-01-29T13:36:00.043 回答
5

每个人对这个问题都有自己的看法,所以期待很多不同的建议。这是我的看法:

  • 1. 混淆你的代码(推荐使用proguard)
  • 2. 在试用期内提供具有完整功能的免费版本
  • 3.使用基于注册用户电子邮件或其他唯一信息的序列号例程

总的来说,您将不得不接受一定程度的盗版,但如果您的应用程序是值得的,人们会为此付费。诚实的人会诚实,版权保护不会使不诚实的人诚实。

于 2010-09-05T18:44:41.307 回答
3

在我看来,如果您不确切知道如何有效地保护您的源代码,那么不要开始尝试基于硬件自己将某些东西散列在一起。它太容易坏了,而且很可能只会惹恼您的客户。

我建议你看看 Atlassian 是如何做到这一点的。他们碰巧销售 Java 软件,而且显然做得很好。 http://www.atlassian.com/ 尝试下载例如 JIRA 并安装。这将使您很好地了解他们的许可方案是如何工作的,以及用户对专业软件的合理期望。

于 2010-09-05T19:54:09.487 回答
2

您必须实施许可功能。

这是一个有趣的资源作为入门: http: //members.chello.at/stefan-schneider/JavaLicenseKit.html

于 2010-09-05T18:41:35.370 回答
1

在我以前的 c++ 时代,我使用 MAC 地址代码保护来对抗盗版,非常好,而且真的没有人偷走我的软件,因为我总是强制操作系统重新读取真正的 mac 以避免 mac 覆盖。那是关于可以直接访问本地资源的 C++ 编码。

今天的情况并非如此,在代码位于 .class 文件中的 Java 应用程序中,这些文件总是可以被解码回原始源代码(是的,这是可能的,而且很容易找到这样做的工具)。

我认为,作为简历,不可能保护java程序免受盗版。我发现没有办法像过去的黄金 c++ 时代 :)

于 2013-11-25T04:08:58.137 回答