javascript
SpringBoot2 集成xJar插件 动态解密jar包,避免源码泄露或反编译
一、集成
1. 官方介紹地址
手動加密:https://github.com/core-lib/xjar
maven插件集成:https://github.com/core-lib/xjar-maven-plugin
2. 添加倉庫和插件
第一種(不推薦使用)
<project><!-- 設置 jitpack.io 插件倉庫 --><pluginRepositories><pluginRepository><id>jitpack.io</id><url>https://jitpack.io</url></pluginRepository></pluginRepositories><!-- 添加 XJar Maven 插件 --><build><plugins><plugin><groupId>com.github.core-lib</groupId><artifactId>xjar-maven-plugin</artifactId><version>4.0.2</version><executions><execution><goals><goal>build</goal></goals><!--可以改成 install--><phase>package</phase><configuration><password>xxxx</password><!-- 需要加密的資源路徑表達式 --><includes> <include>com/zsplat/**</include><include>mapper/*Mapper.xml</include><include>config/**</include></includes><!-- 無需加密的資源路徑表達式 --><excludes><exclude>static/**</exclude><exclude>META-INF/**</exclude></excludes><!-- 目標jar存放目錄 --><targetDir>${project.build.directory}\xJarDir\</targetDir><!-- 目標jar名稱,也可以用表達式(參考官網) --><targetJar>zsplat.jar</targetJar></configuration></execution></executions></plugin></plugins></build> </project>第二種(推薦使用):就是把密碼配置刪除,采用編譯打包添加密碼會安全些
https://jitpack.io Maven倉庫
3. 編譯打包
上面xJar插件綁定到指定的 package ,因此每次執行 mvn clean package -Dxjar.password=io.xjar即可自動構建出加密的包,
mvn clean install -Dxjar.password=io.xjar如下圖:
根目錄中 unified-access-center-0.0.1-SNAPSHOT.jar 是未加密的,而 xJarDir 文件夾下的 unified-access-center-passwd.jar 就是加密后的。
注釋:
jar包名稱可以一樣,前提是不在同一個目錄中即可,這里jar名稱不一樣只是為了讓大家看得清楚些而已
二、安裝go環境和編譯
在對應的 xJarDir 文件夾目錄編譯腳本(go build xjar.go)。在不同的平臺進行編譯即可得到不同平臺的啟動器可執行文件,其中Windows下文件名為 xjar.exe 而Linux下為 xjar
2.1. 安裝go
用于編譯的機器需要安裝 Go 環境,用于運行的機器則可不必安裝 Go 環境
https://blog.csdn.net/weixin_40816738/article/details/120386291
2.2. 編譯
演示編譯環境linux,由于windows有一些bug
上傳linux
三、運行
3.1. 正常運行
./xjar java -Dfile.encoding=utf-8 -jar unified-access-center-passwd.jar3.2. 二次加密運行
聲明:如果小伙伴們不需要二次加密,請跳過3.2. 步驟
我的運行方式是這樣的,因為我單獨對yml文件中的敏感信息進行了二次加密,因此需要添加-Djasypt.encryptor.password=gblfy.com這一段,特別注意點,建議按照我的命令的前后順序
./xjar java -Dfile.encoding=utf-8 -Djasypt.encryptor.password=gblfy.com -jar unified-access-center-passwd.jar如果小伙伴們,也想和我一樣對敏感信息二次加密,請移步:
Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密
3.3. 測試結果
目的:這里是先運行保證正常功能無影響,下面會對jar進行反編譯測試
四、IntelliJ IDE 反編譯測試
4.1. 將加密的jar進行解壓
4.2. 打開解壓后的文件夾
4.3. class文件查看
4.4. 配置文件反編譯
4.5. xml文件反編譯
五、jd-gui 反編譯測試
5.1. 沒加密的jar效果
- 沒加密的jar效果
5.2. 加密jar的效果
- 加密jar的效果
說明一下:這里不是我沒把文件打開,這是我選中文件雙擊打開后的效果,小伙伴們可以試試
六、XJad反編譯測試
6.1. 沒加密的jar效果
6.2. 加密的jar效果
七、XJad反編譯測試
7.1. 沒加密的jar效果
7.2. 加密的jar效果
八、反編譯工具集合分享
java 反編譯工具
總結
以上是生活随笔為你收集整理的SpringBoot2 集成xJar插件 动态解密jar包,避免源码泄露或反编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: data.name.toLowerCas
- 下一篇: centos 7 安装golang遇到问