有的时候,给别人提供的jar,有些核心的密匙不想被人通过反编译工具查看,那么要怎样才能做到呢?既要能正常调用,又不想别人反编译jar查看源码
网上有很多方法,有使用第三方工具的、使用maven插件的,这些或多或少都要费一些功夫才能完成,其实除了这些,还有一个简单的方法能轻而易举地防止jar的某些类被反编译。
其中的思路就是在对应的类里面写个匿名类,这个类永远不会调用,也就是无效累赘的类,如我希望对jar中的类A.class进行保护,我只需要在A中写一个private的class即可。这里我将分享一下核心的操作步骤
操作步骤
1对要保护的class写一个private的内部类
2 打包jar
3 使用压缩工具打开查看jar
4 使用记事本打开对应class(保护$的那个类)
5 删除private 类的名称的个别字符,让private的名字变化
这样class就保护了,使用jude工具也打不开了
如下示例
希望将Info.JAVA的内容保护

向要保护的类中写入private class

使用压缩工具打开jar

修改无效类的名称

jude反编译就出错了
