SpringBoot使用classfinal-maven-plugin插件加密Jar包

jar包加密

1、在启动类的pom.xml中加入classfinal-maven-plugin插件

复制代码
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>net.roseboy</groupId>
                <artifactId>classfinal-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <password>#</password>              <!--启动密码,#为空-->
                    <excludes>org.spring</excludes>
                    <packages>${groupId}</packages>     <!--需要加密的包名,有多个使用逗号分隔-->
                    <cfgfiles>application.yml,spy.properties,ehcache.xml</cfgfiles>     <!--需要加密的配置文件,有多个使用逗号分隔-->
                    <libjars>SuperDog.jar</libjars>				<!--jar包lib目录下要加密的jar依赖,有多个使用逗号分隔-->
                    <code></code>                       <!--机器码,指定某个机器启动-->
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>classFinal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
</build>

2、在右侧的maven工具栏中使用install,xxx-encrypted.jar是加密后的jar包

3、加密后的jar包不能直接运行,要设置javaagent来启动,启动过程中会解密

复制代码
//无密码启动
java -javaagent:APF_AssetServer-encrypted.jar -jar APF_AssetServer-encrypted.jar

//有密码启动
java -javaagent:APF_AssetServer-encrypted.jar='-pwd=密码' -jar APF_AssetServer-encrypted.jar

//增加其他参数启动
java -javaagent:APF_AssetServer-encrypted.jar -jar -Xmx512m -Xms512m APF_AssetServer-encrypted.jar --spring.profiles.active=APF_AssetServer-encrypted

反编译效果

class文件只能看到方法名、参数和注解,方法内容被清空

配置文件变成空白

绑定机器启动

1、下载 classfinal-fatjar-1.2.1.jar

2、执行 java -jar classfinal-fatjar-1.2.1.jar -C

3、将生成的机器码,放到maven插件的code里

相关推荐
paopaokaka_luck3 小时前
基于springboot3+vue3的智能文库平台(AI智能搜索、AI智能汇总、实时在线状态展示、多格式文档预览与富文本编辑、Echarts图形化分析)
前端·网络·spring boot·网络协议·echarts
自强的小白3 小时前
maven高级(聚合和私服)以及私服的上传和下载
java·maven
harmful_sheep7 小时前
maven多版本包导致java.lang.NoClassDefFoundError
java·maven
热心市民lcj8 小时前
Spring Boot 整合 Caffeine 本地缓存实战
spring boot·后端·缓存
天丁o9 小时前
Spring Boot + MyBatis Plus 考勤日报统计报表:打卡记录聚合、异常分类和明细下钻 Demo
spring boot·mybatis plus·企业数字化·考勤系统·报表统计
智_永无止境9 小时前
Spring Boot 集成 OnlyOffice
java·spring boot·后端
Devin~Y10 小时前
从本地生活电商到 AI RAG:互联网大厂 Java 面试场景完整实战
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag
米码收割机10 小时前
SA508-3钢回火焊道焊接温度场数值模拟(模拟图+论文)
spring boot·express·宠物
米码收割机11 小时前
【项目】spring boot+vue3 宠物领养系统(源码+文档)【独一无二】
java·spring boot·宠物
momo21 小时前
Java+WebAI黑马知识点
java·spring boot·mybatis