Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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_Obfuscation_Reverse Engineering_Decompiling - Fatal编程技术网

如何保护Java类文件中的逻辑?

如何保护Java类文件中的逻辑?,java,obfuscation,reverse-engineering,decompiling,Java,Obfuscation,Reverse Engineering,Decompiling,我想在第三方的Java基础设施上运行一个专有算法。他们给了我一个罐子,里面有适合我构建类的对象。我的想法是给他们一个实现我的算法的类 就“反编译”的易用性而言,编译后的Java类与jar相比如何 我假设,要保护自己的IP免受反向工程的影响,最好的办法就是通过一个模糊器来运行它,如中所述 除了因为他们的基础设施必须访问我的类中的命名方法之外,混淆器是否提供了这种级别的保护?或者,如果一方给另一方一个编译过的Java类,那么实际上是否不需要对算法进行反向工程?如果是后者,那么还有什么其他方法可以提供

我想在第三方的Java基础设施上运行一个专有算法。他们给了我一个罐子,里面有适合我构建类的对象。我的想法是给他们一个实现我的算法的类

就“反编译”的易用性而言,编译后的Java类与jar相比如何

我假设,要保护自己的IP免受反向工程的影响,最好的办法就是通过一个模糊器来运行它,如中所述

除了因为他们的基础设施必须访问我的类中的命名方法之外,混淆器是否提供了这种级别的保护?或者,如果一方给另一方一个编译过的Java类,那么实际上是否不需要对算法进行反向工程?如果是后者,那么还有什么其他方法可以提供更高的安全性


(我意识到所有可访问的代码都可以进行反向工程。我只是希望它需要合理的工作水平——理想情况下是在编译的C级别上。)

要了解反编译Java类和JAR有多容易,请参阅。如果您需要公开或实现一个公共API,那么您将在模糊方面受到限制


只要人们能够访问java二进制文件,就很难防止反向工程。您可以尝试使用一个JVM脚本引擎(rhino,…)实现您的算法并保护脚本,但您将任由某个人卸载正在运行的算法。

jar基本上只是.class文件的zip文件,因此,它们同样易于反编译。混淆并签署您的code@ThorbjørnRavnAndersen-对代码进行签名是否有效地加密了未向其提供密钥的用户的代码?否。这有助于避免代码被更改。