对于jar包,如果是为客户私有化部署的,会将jar包给客户,这时就会有源代码泄露的风险,你的一些加密算法,密钥就公开了,所以我们需要为jar包进行加密,或者叫字节码混淆。
classfinal
classfinal是一个字节码混淆工具,我们可以直接把它集成到maven里,以插件的形式去使用它,下面是配置文件
<plugin> <groupId>net.roseboy</groupId> <artifactId>classfinal-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <password>#</password><!-- #表示启动时不需要密码,事实上对于代码混淆来说,这个密码没什么用,它只是一个启动密码 --> <packages>com.pkulaw.test.register</packages><!-- 加密的包名,多个包用逗号分开--> <excludes>org.spring</excludes> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>classFinal</goal> </goals> </execution> </executions> </plugin>
进行maven install之后,会多生成一个jar文件,后缀是encrypted.jar,事实上,我们真实用的还是原来的jar文件,原来的jar文件才是被代码混淆的。
JD-GUI查看源码
通过JD-GUI我们可以查看JAR的源代码,而当你通过classfinal把jar混淆之后,你只能看到方法名,方法内容是看不到的。
而别一个文件,encrypted.jar后缀的,它是没有被混淆的,可以看一下图
另外,代码混淆工具还有很多,大家也可以尝试一下其它的工具。
原文转载:http://www.shaoqun.com/a/501373.html
olive:https://www.ikjzd.com/w/2025
铭宣海淘:https://www.ikjzd.com/w/1551
对于jar包,如果是为客户私有化部署的,会将jar包给客户,这时就会有源代码泄露的风险,你的一些加密算法,密钥就公开了,所以我们需要为jar包进行加密,或者叫字节码混淆。classfinalclassfinal是一个字节码混淆工具,我们可以直接把它集成到maven里,以插件的形式去使用它,下面是配置文件<plugin><groupId>net.roseboy</gro
tchibo:tchibo
国际标准书号:国际标准书号
厦门鱼皮花生好吃吗?该怎做?:厦门鱼皮花生好吃吗?该怎做?
云南磨盘山国家森林公园怎去?:云南磨盘山国家森林公园怎去?
新疆铁路"古尔邦节"小长假发送旅客82万人次:新疆铁路"古尔邦节"小长假发送旅客82万人次
没有评论:
发表评论