2012-05-11 14 views
13

我有一个很大的问题。这就是“如何为我的软件创建许可证”。如何为我的Java软件创建许可证?

OK,觉得这是我的许可证密钥 - 12345YW

当用户进入这个许可证密钥,软件应该允许他使用该软件。好的,一旦用户输入许可证密钥,我的软件必须记住他已经输入了有效密钥,对吗?(因为从下次开始,它不必提示许可证对话框)我的问题是,我怎样才能让我的用软件记住用户输入的许可证?在基于Windows的应用程序中,他们大部分所做的是输入一个入口到Windows注册表。我能做同样的事吗? (那么Ubuntu和Mac怎么样?)

我想写一个.txt文件,以便软件可以读取它并查找是否输入许可证。但是,这是我能想到的最安全的系统。

所以,如果我输入上面的许可证密钥,我该如何让我的软件记住它?我真的很高兴,如果你能给我一个代码示例(即:我不知道如何编辑注册表,以防Windows注册表等)。请帮助我...

+4

让软件“记住”一件事很简单。使它不平凡的黑客是别的... – Mysticial

+0

使用license4j应用程序它将帮助你...检查他们的视频在youtube – 2017-10-04 18:08:03

回答

18

许可软件还没有解决的问题 - 或者至少,这样做安全,没有给用户造成不便,并且没有在大型基础设施上投资也没有解决。

您存储许可证状态的位置/机制通常是无关紧要的 - 注册表不再是安全的文本文件 - 它需要几秒钟的时间才能访问内容,并“隐藏”一些远程回水的注册表并没有太大的帮助。

假设你的软件有某种持久性的东西(数据库文件系统?);您可以使用相同的持久性机制来存储注册状态。

当然,任何您的软件可以读取/写入的内容都可以被试图未经授权访问您的软件的人访问。所以,你可以加密记录;那么你有管理该加密机制的密钥的问题; afaik,目前没有可靠的解决方案。

那么,你可能有一个“许可证服务器”在互联网上;您的软件可能会读取您机器的唯一标识符(MAC address),将其发送到您的许可证服务器,并让服务器返回许可证状态。再说一次,这是非常微不足道的,现在你要求你的用户在线使用你的软件。

如果您的软件对用户具有远程吸引力,黑客将在几天内破解许可密钥保护,并在互联网上发布详细说明。苹果为保护Iphone/Ipad上的软件做出了极大的努力,然而越狱应用却可以解锁它们。

在我看来,除非您的软件价值数千万美元的收入,否则您应该为您的用户尽可能简化生活,并且不要过多担心安全方面 - 使用现成的东西(如@bunting建议),或者解决一个文本文件。

具体来说,我想:

  • 检查有效许可证文件的应用程序启动时存在
  • 如果许可文件不存在,要求用户输入许可证密钥
  • 比较可用您的许可证密钥输入密钥
  • 将“有效”文件写入您的应用程序目录中的文件系统;或者,修改现有的配置文件。

这是轻而易举的打破;所以你可以更进一步。首先,Java应用程序易于反编译,攻击者可以轻松读取您的“许可证”常量。你应该使用混淆器来使这个变得困难(虽然不是不可能)。其次,你可以加密你的本地许可证数据;这也会让整个偶然的黑客变得更难。您可以在加密方案中包含一些本地数据,这样黑客就不会仅仅使用有效的许可证密钥(例如,将许可证密钥与机器的MAC地址相乘)重新分发应用程序。

在这两种情况下,您都将许可证“硬连线”到应用程序中;在黑名单中有黑名单发布应用程序许可证密钥的公告板,除了通过用新密钥发布新版本的应用程序之外,您无法做出回应。

+3

甚至更​​好,一个简单的弹出窗口说'嗨,你可以尽可能多地使用这个软件,但是请,如果你觉得它有用,通过贝宝给我发一些爱'。 – mcfinnigan

+0

是的,@ mcfinnigan,那会更好 - 虽然我把这算作不便 - “nagware”很快从我的电脑上消失... –

+0

授予。更好的唠叨只有一次:)但是,我明白你的观点。 – mcfinnigan

3

看起来好像你正在试图建立许可到你的软件。你有没有考虑过使用一个库,而不是手工做?也许看看True License,它应该做你需要的。

+0

非常感谢回复彩旗,我真的很感激它。无论如何,这是免费的吗? (因为它说“TrueMirror文件同步应用程序可在http://truemirror.schlichtherle.de/en/免费试用期获得”。) –

+0

请参阅许可页面:http://truelicense.java.net/license .html –

+0

谢谢很多彩旗:)我真的很感激它:) –

6

我很惊讶有一种可能性被忽略了。保护不可信的客户数据的最简单方法是永远不要让客户拥有它。几个应用程序体系结构允许:Web应用程序,RPC远程服务器的桌面客户端或连接到远程服务器上虚拟桌面的高性能瘦客户机。由于在安装,数据备份和维护方面的优势,Web应用程序已经很流行。

因此,而不是试图通过使强制执行一个邪恶的客户对公司的安全策略软件获得的荣誉基本的计算机科学博士...

(可能性极小)

...你只需将知识产权置于可信的服务器上,客户端只需拥有用户界面(以及非保密逻辑)即可。这个策略有它自己的陷阱。不过,它的记录方式比客户端复制保护要好得多。

注意:奖金是您可以获得稳定的收入来源,为客户“管理”软件。