如何保护Java类文件中的逻辑?
我想在第三方的Java基础设施上运行一个专有算法。他们给了我一个罐子,里面有适合我构建类的对象。我的想法是给他们一个实现我的算法的类 就“反编译”的易用性而言,编译后的Java类与jar相比如何 我假设,要保护自己的IP免受反向工程的影响,最好的办法就是通过一个模糊器来运行它,如中所述 除了因为他们的基础设施必须访问我的类中的命名方法之外,混淆器是否提供了这种级别的保护?或者,如果一方给另一方一个编译过的Java类,那么实际上是否不需要对算法进行反向工程?如果是后者,那么还有什么其他方法可以提供更高的安全性如何保护Java类文件中的逻辑?,java,obfuscation,reverse-engineering,decompiling,Java,Obfuscation,Reverse Engineering,Decompiling,我想在第三方的Java基础设施上运行一个专有算法。他们给了我一个罐子,里面有适合我构建类的对象。我的想法是给他们一个实现我的算法的类 就“反编译”的易用性而言,编译后的Java类与jar相比如何 我假设,要保护自己的IP免受反向工程的影响,最好的办法就是通过一个模糊器来运行它,如中所述 除了因为他们的基础设施必须访问我的类中的命名方法之外,混淆器是否提供了这种级别的保护?或者,如果一方给另一方一个编译过的Java类,那么实际上是否不需要对算法进行反向工程?如果是后者,那么还有什么其他方法可以提供
(我意识到所有可访问的代码都可以进行反向工程。我只是希望它需要合理的工作水平——理想情况下是在编译的C级别上。)要了解反编译Java类和JAR有多容易,请参阅。如果您需要公开或实现一个公共API,那么您将在模糊方面受到限制
只要人们能够访问java二进制文件,就很难防止反向工程。您可以尝试使用一个JVM脚本引擎(rhino,…)实现您的算法并保护脚本,但您将任由某个人卸载正在运行的算法。jar基本上只是.class文件的zip文件,因此,它们同样易于反编译。混淆并签署您的code@ThorbjørnRavnAndersen-对代码进行签名是否有效地加密了未向其提供密钥的用户的代码?否。这有助于避免代码被更改。