当前位置: 首页 > 面试题库 >

如何为我的Java软件创建许可证?

东方河
2023-03-14
问题内容

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

OK,以为这是我的许可证密钥-12345YW

当用户输入此许可证密钥时,该软件应允许他使用该软件。好的,一旦用户输入了许可证密钥,我的软件就必须记住他已经输入了有效密钥,对吗?(因为从下一次开始,它不需要提示许可证对话框)我的问题是,我该如何制作我的许可证?软件还记得用户已经输入了许可证吗?在基于Windows的应用程序中,大多数操作是输入Windows注册表项。我可以一样吗?(那Ubuntu和Mac呢?)

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

因此,如果输入上述许可证密钥,如何使我的软件记住它?如果您也可以给我一个代码示例,我真的很高兴(即:如果Windows注册表等,我不知道如何编辑注册表)。请帮我…


问题答案:

许可软件尚未解决,或者至少在没有给用户带来麻烦的前提下安全地进行许可,并且没有在主要基础设施上进行投资也无法解决。

存储许可证状态所依据的位置/机制基本上无关紧要-注册表并不比文本文件更安全-
花费几秒钟即可访问内容,并且将条目“隐藏”在注册表的某些远程死水中并没有没有太大的帮助。

据推测,您的软件具有某种持久性(数据库或文件系统)。您可以使用相同的持久性机制来存储注册状态。

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

因此,您可能会在互联网上拥有一个“许可证服务器”。您的软件可能会读取您计算机的唯一标识符(例如MAC地址),将其发送到许可证服务器,然后让服务器返回许可证状态。同样,这是很容易避免的,现在您需要用户在线才能使用您的软件。

如果您的软件对用户很有吸引力,那么黑客将在几天之内破坏许可证密钥的保护,并在Internet上发布详细说明。苹果竭尽全力保护Iphone /Ipad上的软件,但越狱应用程序将其解锁。

在我看来,除非您的软件的收入达到数千万美元,否则您应该使用户的生活尽可能轻松,并且不要过分担心安全性-使用现成的东西(例如@bunting推荐),或准备一个文本文件。

具体来说,我会:

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

这很容易打破。因此您可以再走一步。

首先,Javahtml" target="_blank">应用程序易于反编译,攻击者可以轻松读取您的“许可证”常量。您应该使用混淆器使此操作变得困难(尽管并非不可能)。

其次,您可以加密本地许可证数据;对于完全不熟悉的黑客来说,这也将变得更加困难。您可以在加密方案中包含一些本地数据,这样黑客就不能仅使用有效的许可证密钥来重新分发您的应用程序(例如,通过将许可证密钥乘以计算机的MAC地址)。

在这两种情况下,您都是将许可证“硬接线”到应用程序中。在公告板上,黑客会发布应用程序的许可证密钥,您只能通过使用新密钥发布新版本的应用程序来做出响应。



 类似资料:
  • 问题内容: 在纯Java6中为大型文件创建SHA-1的最佳方法是什么?如何实现此方法: 问题答案: 使用类并逐个提供数据。下面的示例忽略了诸如将byte []转换为字符串并关闭文件之类的细节,但是应该给了您大致的理解。

  • 问题内容: 每个人,如何为Eclipse Helios中用Java编写的程序创建可执行文件?我的意思是创建一个小图标,使其只能通过双击其图标来启动程序,谢谢事先 编辑, 我的意思是Windows可执行文件 问题答案: 在eclipse中导出.jar。(如何) 使用JSmooth (信息)制作一个.exe文件。(如何)

  • 我想为我的jar文件创建一个windows安装程序。我不想在要部署到的目标计算机上安装jre/jdk。 我试用了jpackage(Java 14的一部分),但它对我不起作用。我尝试了以下命令:

  • 问题内容: 我想创建一个可以用插件扩展的Java程序。我该怎么办?我应该在哪里找? 我有一组插件必须实现的接口,它应该在jar中。该程序应在相对(相对于该程序)文件夹中监视新的jar,并以某种方式注册它们。 尽管我确实喜欢Eclipse RCP,但我认为这对于我的简单需求来说实在太多了。 对于Spring同样适用,但是既然我还是要研究它,我不妨尝试一下。 但是,我仍然希望找到一种方法来尽可能简单地

  • 问题内容: 创建战争文件(使用eclipse)以在tomcat上运行的最佳实践是什么?教程,链接,示例受到高度赞赏。 问题答案: 你可以使用Ant来设置,编译,WAR和部署你的解决方案。 然后,你可以在Eclipse中执行一键操作以运行该Ant目标。以下是每个步骤的示例: 前提条件 我们假设你的代码组织如下: :Java文件,属性,XML配置文件 :你的JSP文件 :运行时所需的任何JAR :你的

  • 我在Eclipse中完成了我的项目。我有,,和