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 //增加其他參數(shù)啟動 java -javaagent:APF_AssetServer-encrypted.jar -jar -Xmx512m -Xms512m APF_AssetServer-encrypted.jar --spring.profiles.active=APF_AssetServer-encrypted
反編譯效果
class文件只能看到方法名、參數(shù)和注解,方法內容被清空
配置文件變成空白


綁定機器啟動
1、下載 classfinal-fatjar-1.2.1.jar
2、執(zhí)行 java -jar classfinal-fatjar-1.2.1.jar -C
3、將生成的機器碼,放到maven插件的code里

到此這篇關于SpringBoot使用classfinal-maven-plugin插件加密Jar包的示例代碼的文章就介紹到這了,更多相關SpringBoot classfinal-maven-plugin加密Jar包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
elasticsearch的靈魂唯一master選舉機制原理分析
這篇文章主要為大家介紹了elasticsearch的靈魂唯一master選舉機制原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
mybatis配置mapper-locations位置的三種方式小結
這篇文章主要給大家介紹了關于mybatis配置mapper-locations位置的三種方式,Mybatis-Plus的初衷是為了簡化開發(fā),而不建議開發(fā)者自己寫SQL語句的,但是有時客戶需求比較復雜,需要的朋友可以參考下2023-08-08
IntelliJ?IDEA中如何使用Checkstyle對Java代碼規(guī)范檢查
這篇文章主要介紹了IntelliJ IDEA中如何使用Checkstyle對Java代碼規(guī)范檢查的相關資料,checkstyle是提高代碼質量,檢查代碼規(guī)范的很好用的一款工具,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-03-03
多線程-lock與lockInterruptibly的區(qū)別及說明
文章主要討論了Java中ReentrantLock的lock和lockInterruptibly方法的區(qū)別,以及AQS中的雙向鏈表設計,lock方法不響應中斷,而lockInterruptibly方法會響應中斷,AQS的雙向鏈表設計使得線程管理更加高效和靈活,適用于高并發(fā)場景2025-02-02

