栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

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

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

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

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

具体来说,我会:

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

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

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

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

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号