由於項目要求(雖然我覺得代碼沒什么機密可言...),寫好的jar包需要做一定加密處理
這里提供兩種辦法,一種奇葩,一種通用
1. 直接修改jar文件:
具體步驟:
在代碼中插入一段不會運行的到的代碼
1 private class Invalid{ 2 private Invalid() { 3 4 } 5 }
使用eclipse打包文件,右鍵export > java > JAR file > finish
使用解壓軟件打開jar包。記事本打開...$Invalid.class文件,去掉里面的d
# 最好另存外面,然后把里面的刪了再拖進來,貌似不能直接保存
加密效果:
好像解壓后class文件仍舊可以破解
方法缺陷:
如上
2.使用Proguard混亂工具
具體步驟:
下載Proguard
推薦下載5.X版本,和java8更兼容,而4.X版本和java7兼容
# 不然會出現Unsupported class version number [52.0] 的錯誤
可以在CSDN上下載(http://download.csdn.net/download/kong_gu_you_lan/9637131)
# 因為下這個做了好久的獎賞任務。。有個是郵箱驗證成功出來的兩個字是什么,直接填了“登錄”,哈哈
下載后解壓,點開Proguard5.X>bin>proguardgui.bat
使用Proguard
左側input/output,在右邊add input添加需要加密jar包,add output自己命名一個導出jar包,下方的library中,有一個默認的rt.jar,如果沒有引入什么自定義jar文件,直接這個默認就好
左側obfuscation,選擇圖中這幾項即可,其中第2、3個勾勾對應的文件a.txt是混淆函數名,b.txt是混淆類名
# 其實就是瞎編幾個類名和函數名,一個名字占一行
左側Shrinking,最上面的Shrink去掉
# 不然會如下報錯,The output jar is empty. Did you specify the proper '-keep' options?
其他默認,點擊左側Process > Process 加密完成
加密效果:
還可以
方法缺陷:
無法對抗功能更加強大的反編譯軟件