Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实现Java应用程序的序列号和激活保护的一般方法是什么?_Java - Fatal编程技术网

实现Java应用程序的序列号和激活保护的一般方法是什么?

实现Java应用程序的序列号和激活保护的一般方法是什么?,java,Java,我想创建一个Java桌面应用程序,并想采用某种机制来保护我的软件不被非法复制。实现Java应用程序的序列号和激活保护的一般最佳方法是什么?如果用户能够正确激活软件,则在何处存储激活信息 谢谢 几乎只有一个答案:在您的服务器上,以及算法的重要部分。如果所有的代码都必须在客户机上,那么所有可以工作的就是 可信计算(最终成为硬件障碍) 隐写术(模糊、分散、隐藏、欺骗等) 以下是一些提示:简短回答:要让一个有决心的用户不盗版你的应用程序是非常非常困难的——如果不是不可能的话。这是否意味着应用程序总是需要

我想创建一个Java桌面应用程序,并想采用某种机制来保护我的软件不被非法复制。实现Java应用程序的序列号和激活保护的一般最佳方法是什么?如果用户能够正确激活软件,则在何处存储激活信息


谢谢

几乎只有一个答案:在您的服务器上,以及算法的重要部分。如果所有的代码都必须在客户机上,那么所有可以工作的就是

  • 可信计算(最终成为硬件障碍)
  • 隐写术(模糊、分散、隐藏、欺骗等)

  • 以下是一些提示:简短回答:要让一个有决心的用户不盗版你的应用程序是非常非常困难的——如果不是不可能的话。这是否意味着应用程序总是需要连接到服务器才能运行?或者你的答案没有包括“在哪里存储激活信息?”部分?@Martinho:如果算法的重要部分在服务器上,那么是的,至少在执行这些部分时,应用程序必须连接到服务器。对于(许多)不可能的情况,我提供了我所知道的相对较弱的备选方案。@chris_l:我不同意“相对较弱”的说法。它们似乎都同样脆弱,但在线方式对合法用户来说可能是一种诱惑,使其稍微脆弱一些。无论是本地还是远程检查密钥,都可以“修复”应用程序。话虽如此,没有更好的解决方案了…@chris\u l:谢谢你的回答,有没有可能使用一些运行时编译技术将带有一些类对象的激活信息编译成一个全新的类或一个jar文件,这必须由主程序使用?@chris\u l:我同意,如果程序在服务器和客户机之间拆分,则可以具有一定级别的安全性。但是,如果将开发和服务器成本都考虑在内,那么对于许多项目来说,这可能不是一个选项。我认为“花时间改进你的产品,而不是确保它安全”这句老话最终会赢得胜利。