IDEA打包工具類jar並混淆
最近在做lincense授權功能,做了個license生成以及驗證工具類,為了防止使用者破解,需要打成jar包並混淆,在此記錄一下。
生成jar
idea中有個東西叫Artifacts,對於Maven來說,所有生成的東西都可以叫作Artifact,當然也包括Jar。
- 開啟專案配置:Project Structure–>選擇左側Artifacts–>然後新增一個空jar包。
新增完之後可以修改jar包名稱,按自己需要修改即可。
- 配置需要打成jar包的工具類。
這是我們選擇專案執行後生成的class檔案,注意選擇class之後,生成的是com以下的類包含com資料夾。之後點選ok,apply完成新增。
- 打包。配置好Artifacts之後直接build配置好的Artifacts即可。
- 在build之前可以先檢視專案目前的class檔案,確認是否都是自己需要的工具類,多餘的可以直接刪除,之後build就不會把這些也打入jar包(刪除的是class檔案,執行會自動生成,不影響專案執行)。
我這裡只需要打包util,下邊的sdk以及yml檔案就可以直接刪除,這樣打包之後就不會包含這些檔案。
之後可以檢視生成的jar包:
路徑是可以自己配置的,在配置jar的地方設定。
混淆jar
混淆採用的是Allatori工具。用法如下:
- 下載。
CSDN下載連結 - 解壓並進入目錄Allatori-7.1-Demo\tutorial\step01\files。
內容說明
- Clean.bat:清除 log.xml 以及生成混淆的檔案
- config.xml:混淆的配置檔案
- RunAllatori.bat:執行生成混淆 jar 的命令
- 配置混淆檔案。
<config>
<input>
<!--in節點是需要混淆的原始檔,out節點是輸出檔名,在同目錄下-->
<jar in="licutil.jar" out="licutil00.jar"/>
</input>
<!--混淆過濾配置,protected以上級別不過濾,即public等級不過濾,按自己需要修改即可。-->
<keep-names>
<class access="protected+">
<field access="protected+"/>
<method access="protected+"/>
</class>
</keep-names>
<property name="log-file" value="log.xml"/>
</config>
- 生成混淆後的新jar。
將自己的源jar檔案複製到files目錄下,並雙擊執行 RunAllatori.bat。
-
檢視結果。
如圖:1是生成的混淆後的jar檔案,可以正常使用,開啟之後可以看到2位置protected級別的內容已經被混淆。3位置public內容沒有混淆。 -
遇到的問題解決思路。
工具類大多數是public的,並不需要混淆,但是對於license工具類是有加密相關內容的,如果不混淆就沒有任何意義。
解決辦法很簡單,將public的內容放到private等低階別的,重寫public方法然後呼叫private方法。
對於變數,字串等,預設不會混淆。解決辦法:初始化時預設null,定義方法初始化。如下圖:
以上就是打包並混淆的過程記錄,如有問題,歡迎留言!
相關文章
- idea打包jar包IdeaJAR
- Assemby 打包並啟動jar包JAR
- Intellij Idea 將Java專案打包成jarIntelliJIdeaJavaJAR
- Intellij Idea 將java專案打包成jar,cmd執行該jarIntelliJIdeaJavaJAR
- Idea Java Maven建立專案,新增依賴,引用本地jar,打包jarIdeaJavaMavenJAR
- idea docker打包IdeaDocker
- IDEA匯入jar包IdeaJAR
- idea SpringBoot jar 熱部署IdeaSpring BootJAR熱部署
- IDEA 匯入 ***.jar包IdeaJAR
- springboot,springcloud打包成jar教程Spring BootGCCloudJAR
- AndroidStudio專案打包成jarAndroidJAR
- Idea打包springboot專案jar包,執行報找不到主清單屬性或找不到主類問題解決方法。IdeaSpring BootJAR
- Android Studio打包apk,aar,jar包AndroidAPKJAR
- 在IDEA上執行成功,打包成jar包後,執行報錯,程式自動退出IdeaJAR
- IntelliJ IDEA 如何引入本地 jar 包IntelliJIdeaJAR
- 記一次springboot專案打包後jar中的類無法使用Spring BootJAR
- 在idea上 maven 打包IdeaMaven
- idea工具手動匯入jar包,多個module共使用同一個jar包的操作步驟IdeaJAR
- 【java學習】jar、arr和程式打包JavaJAR
- AndroidStudio最新打包jar和aar的方法AndroidJAR
- AndroidStudio打包Library專案成jar包AndroidJAR
- IDEA打可執行的jar包IdeaJAR
- Python程式碼混淆工具,Python原始碼保密、加密、混淆Python原始碼加密
- SpringBoot程式碼混淆與反混淆加密工具詳解Spring Boot加密
- IDEA中Maven顯示存在依賴但專案中並未匯入依賴JARIdeaMavenJAR
- jenkins將打包的jar包部署到nexusJenkinsJAR
- IDEA 匯出和匯入jar包教程IdeaJAR
- java 程式設計常混淆的一些屬性,方法,工具類Java程式設計
- Python 程式碼混淆工具概述Python
- 前端簡潔並實用的工具類前端
- Linux系統下執行Jar包以及idea遠端除錯jar包LinuxJARIdea除錯
- linux中常見的打包壓縮命令——tar、jarLinuxJAR
- Maven打包springboot框架的可執行的jarMavenSpring Boot框架JAR
- 把可執行jar打包成exe檔案JAR
- springboot將jsp打包成jar執行的坑Spring BootJSJAR
- IDEA如何匯入外部依賴的jar包IdeaJAR
- Maven Idea檢視解決jar包衝突MavenIdeaJAR
- IDEA中打Jar包的正確姿勢IdeaJAR