可定制的Java应用程序理念
因此,我正在开发一个java应用程序,客户要求能够拥有可以解锁的功能,以使应用程序能够根据客户的付费需求进行定制。因此,我试图以一种既能提供一定程度的安全性,又能提供一般可维护性和可读性的方式来实现这一点 我一直在四处搜索,并有自己的想法,维护一个加密的配置文件,该文件可能存储在一个jar文件中,我可以在运行时卸载、重新打包和加载 看看是否有其他人对你如何做到这一点有什么有趣的想法。到目前为止,我在谷歌上做了一些研究,但没有取得很多成功可定制的Java应用程序理念,java,customization,Java,Customization,因此,我正在开发一个java应用程序,客户要求能够拥有可以解锁的功能,以使应用程序能够根据客户的付费需求进行定制。因此,我试图以一种既能提供一定程度的安全性,又能提供一般可维护性和可读性的方式来实现这一点 我一直在四处搜索,并有自己的想法,维护一个加密的配置文件,该文件可能存储在一个jar文件中,我可以在运行时卸载、重新打包和加载 看看是否有其他人对你如何做到这一点有什么有趣的想法。到目前为止,我在谷歌上做了一些研究,但没有取得很多成功 哦,最后一点警告,这个java应用程序所在的机器可能没有可
哦,最后一点警告,这个java应用程序所在的机器可能没有可用的internet。因此,运行许可证服务器似乎不是一个可行的选项防止对软件中“锁定”的功能进行“未经授权访问”的唯一可靠方法是,不要提供不希望用户首先访问的代码 通过使用密码、加密(密钥将在哪里?在程序本身中?)解锁来启用额外功能,配置文件通常会被决心获得想要执行的代码的人击败 如果锁定的代码已经在二进制文件中分发,那么至少使用软件手段解锁最有可能失败。我脑海中浮现的一种似乎有点安全的方法是硬件密钥加密狗,或者将重要代码存储在硬件上,但没有多少人喜欢必须插入一块硬件才能使用软件的想法
实际上,代码本身没有只被某些软件标志禁用的功能。防止对软件中“锁定”的功能进行“未经授权访问”的唯一可靠方法是不提供不希望用户首先访问的代码 通过使用密码、加密(密钥将在哪里?在程序本身中?)解锁来启用额外功能,配置文件通常会被决心获得想要执行的代码的人击败 如果锁定的代码已经在二进制文件中分发,那么至少使用软件手段解锁最有可能失败。我脑海中浮现的一种似乎有点安全的方法是硬件密钥加密狗,或者将重要代码存储在硬件上,但没有多少人喜欢必须插入一块硬件才能使用软件的想法
归根结底,代码本身没有只被某些软件标志禁用的功能。我建议您与客户建立信任关系。或者是那个,或者是包a,但即使是这些也不是100%
如果您正在分发软件,任何类型的加密都必须能够自行解密。你实际上是在给客户锁和钥匙。我建议你与客户建立信任关系。或者是那个,或者是包a,但即使是这些也不是100%
如果您正在分发软件,任何类型的加密都必须能够自行解密。您实际上是在为客户提供锁和钥匙。您可以实现核心产品,然后将附加功能作为插件。您可以将每个插件放在一个单独的jar文件中。然后,客户可以分发包含核心应用程序和购买的插件的捆绑包。因此,未购买的功能不在任何二进制文件中。您可以实现核心产品,然后将附加功能作为插件。您可以将每个插件放在一个单独的jar文件中。然后,客户可以分发包含核心应用程序和购买的插件的捆绑包。因此,未购买的功能不在任何二进制文件中。我建议使用某种依赖项注入或运行时编织方面,这样您就可以包含具有正确xml文件的新jar文件或新功能的配置文件
我同意coobird的观点,包括它们并锁定它们本身就有风险,因为最终会有人对您的应用程序进行反编译,并决定如何获得所有功能。我建议使用某种依赖注入或运行时编织方面,因此,您可以包含具有正确xml文件的新jar文件或新特性的配置文件
我同意coobird的观点,包括它们并锁定它们本身就有风险,因为最终会有人对您的应用程序进行反编译,并决定如何获得所有功能。分发完整的功能集。让他们打电话给你,要钥匙解锁各种功能。(使用简单的加密方案,使密钥具有合理的长度,并可通过电话传送。)分发整套密钥。让他们打电话给你,要钥匙解锁各种功能。(使用简单的加密方案,使密钥具有合理的长度,并且可以通过电话传送。)已经有了相对的信任级别。目前有多个版本的应用程序,它们实际上是由它们的启动类分开的,使用不同的main来加载策略集。我们知道它很容易被剥夺权利。但在特定的客户群中,他们认为可能性足够小,所以他们并不特别担心。我想让事情变得“足够困难”,可以这么说。现在已经有了相对的信任度。目前有多个版本的应用程序,它们实际上是由它们的启动类分开的,使用不同的main来加载策略集。我们知道它很容易被剥夺权利。但具体来说