可定制的java应用程序思想

oewdyzsn  于 2021-07-05  发布在  Java
关注(0)|答案(5)|浏览(249)

因此,我正在开发一个java应用程序,客户要求能够拥有一些可以解锁的特性,从而使应用程序可以根据客户想要支付的费用进行定制。因此,我试图以一种既能提供某种程度的安全性,又能提供一般的可维护性和可读性的方式来实现这一点。
我做了一些搜索,并有自己的一些想法,维护一个加密的配置文件,该文件可能存储在jar文件中,我可以在运行时卸载、重新打包和加载。
看看是否有其他人对你如何做到这一点有什么有趣的想法。到目前为止,我在谷歌上做了一些研究,但没有取得很大成功。
哦,最后一个小警告,这个java应用程序所在的机器可能没有可用的internet。所以运行许可证服务器似乎不是一个可行的选择

rqcrx0a6

rqcrx0a61#

分发整套。让他们打电话给你要钥匙来解锁各种功能(使用简单的加密方案,使密钥具有合理的长度,并且可以通过电话传送。)

11dmarpk

11dmarpk2#

我建议你与顾客建立一种信任的关系。或者捆绑一个usb密钥加密狗,但即使这些都不是100%。
如果您正在分发软件,任何类型的加密都必须能够自行解密。实际上,你是在给客户提供锁和钥匙。

vxbzzdmp

vxbzzdmp3#

防止“未经授权访问”软件中“锁定”的功能的唯一可靠方法是,不要提供不希望用户首先访问的代码。
通过使用密码解锁、加密(密钥将在哪里)来启用额外功能?在程序本身中,配置文件通常会被那些决心获得想要执行的代码的人打败。
如果被锁定的代码已经在二进制文件中分发,那么至少使用软件手段解锁很可能会失败。有一种方法让我头脑发热,似乎有点安全,那就是硬件密钥加密狗,或者有重要的代码存储在硬件上,但是没有多少人喜欢必须插入一块硬件才能使用软件的想法。
当它真正归结到它,不要在代码本身的功能,这只是由一些软件标志禁用。

ktecyv1j

ktecyv1j4#

我建议您使用某种依赖注入或运行时编织方面,这样您就可以包含具有正确xml文件的新jar文件或新特性的配置文件。
我同意coobird的观点,包括它们并锁定它们本身就是有风险的,因为有人最终会反编译你的应用程序并决定如何获得所有的特性。

tgabmvqs

tgabmvqs5#

您可以实现核心产品,然后将附加功能作为插件。您可以将每个插件放在一个单独的jar文件中。然后,客户可以分发包含核心应用程序和购买的插件的捆绑包。因此,未购买的功能不在任何二进制文件中。

相关问题