即使您加密了jar文件,也必须在JVM能够运行它之前对其进行解密,因此您将需要另一个jar文件,其中包含解密并在JVM中加载的类。
由于第二个jar文件本身不能被加密,因此想要查看您的类文件的恶意用户可以查看第二个jar文件中的类,然后解密您的超级秘密jar文件并对其进行访问。
也许您可以使用混淆器来提高代码的安全性,但是它最终将保护(更难但并非不可能)使类文件反编译(而不是被使用)。
如果混淆还不够,您可以考虑将jar文件编译为Windows的DLL或unix /
linux的SO,这将使反编译变得更加困难,但并非总是能够正确地将其反编译,并且通常是PITA。GCJ能够以某种方式执行此 *** 作,并且还有其他商业产品实际上可以将.class
/ .jar直接编译为机器代码。
但是,请考虑它的安全性无关紧要,因为客户端计算机必须能够执行它,它必须能够读取它,所以无论您公开什么代码,都只能使它成为可能。更难。
如果您确实有一个如此秘密的算法,那么无论如何都不想透露它,可以考虑将其转换为Web服务,将其托管在服务器上,这样就不必将实际代码发送到客户端计算机,并且通过检查对应用程序重要部分的访问,还可以更好地防止未经授权的应用程序副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)