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
- Android資源混淆打包工具Android
- Idea Java Maven建立專案,新增依賴,引用本地jar,打包jarIdeaJavaMavenJAR
- Intellij Idea 將Java專案打包成jarIntelliJIdeaJavaJAR
- Intellij Idea 將java專案打包成jar,cmd執行該jarIntelliJIdeaJavaJAR
- jar打包JAR
- jar 打包JAR
- jar檔案打包JAR
- Gradle 匯出jar,混淆注意點GradleJAR
- jar命令打包與java執行jar包JARJava
- java打包.jar及.exeJavaJAR
- android混淆打包經驗分享!Android
- idea docker打包IdeaDocker
- gradle專案打包jarGradleJAR
- IDEA 匯入 ***.jar包IdeaJAR
- IDEA匯入jar包IdeaJAR
- java project打包生成jar包(通用)JavaProjectJAR
- 在IDEA上執行成功,打包成jar包後,執行報錯,程式自動退出IdeaJAR
- 在idea上 maven 打包IdeaMaven
- IntelliJ IDEA 匯入maven專案並將它及依賴打成jar包IntelliJIdeaMavenJAR
- AndroidStudio專案打包成jarAndroidJAR
- 【java學習】jar、arr和程式打包JavaJAR
- maven 打包可執行 jar 檔案MavenJAR
- 如何將web打包成jar檔案WebJAR
- javabean 如何打包到jar檔案裡JavaBeanJAR
- idea工具手動匯入jar包,多個module共使用同一個jar包的操作步驟IdeaJAR
- idea SpringBoot jar 熱部署IdeaSpring BootJAR熱部署
- Idea打包springboot專案jar包,執行報找不到主清單屬性或找不到主類問題解決方法。IdeaSpring BootJAR
- 記一次springboot專案打包後jar中的類無法使用Spring BootJAR
- Android Studio打包apk,aar,jar包AndroidAPKJAR
- springboot,springcloud打包成jar教程Spring BootGCCloudJAR
- Android Studio 使用 Gradle 打包 JarAndroidGradleJAR
- java 程式設計常混淆的一些屬性,方法,工具類Java程式設計
- IntelliJ IDEA 如何引入本地 jar 包IntelliJIdeaJAR
- IDEA打可執行的jar包IdeaJAR
- Idea匯出可執行Jar包IdeaJAR