精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

這什么代碼,沒法看了...

開發 前端
通過proguard來實現class內容的混淆相對比較簡單,當然還有很多其他的技術方法,比如上面說到的對class進行加密這種更安全的技術手段。

哈嘍,大家好,我是指北君。

今天和大家一起學習下java中的代碼混淆技術,后面你也可以讓你的代碼不再裸露在外了,讓人輕易窺視

代碼混淆技術

當需要閱讀jar文件的內容時,可能你會使用一些反編譯工具,比如jd-gui,但是否有遇到反編譯后的內容和想象的不一樣,但正常引用該jar又都是正常的?

開始的話

前段時間,使用了docx4j的庫來操作.docx文件進行一些復雜的操作,比如對多個docx文件進行合并,在網上找了很多的方式發現最終生成的文檔都有很多多余的內容, 導致原本幾兆的文件合并后有幾十兆,記得docx4j官網有提供商業版本的方法,準備窺探下其源碼來研究下,然而當我下載好jar后打開時,我蒙了...

圖片

簡介

我們知道,一般情況下編譯打包后的jar文件可以通過反編譯工具看到jar中的接口、類、方法都是可以被,這樣相關的代碼實現很容易被模仿借鑒,企業的核心代碼很可能被人盜用。特別是一些涉密較強或者商業性的行業軟件,當被拿到jar并反編譯后如同開源一般。那么通過對class文件進行字節碼級別的混淆加密,就能夠在一定程度防止技術被模仿或復用, 從而對java軟件起到很好的保護作用。

實現方式

  1. 對class文件進行加密,但是需要特定的Classloader在加載class時對其解密
  2. 針對class文件反編譯原理,通過花指令防止文件被反編譯
  3. 基于代碼混淆技術,對代碼中的包、類、方法等名稱進行混淆,從而提高代碼閱讀成本

示例

今天主要介紹通過第3種方法實現代碼混淆,這里主要使用了proguard工具對應的maven插件proguard-maven-plugin:

Proguard是一個Java類文件壓縮器、優化器、混淆器、預校驗器。壓縮環節會檢測以及移除沒有用到的類、字段、方法以及屬性。優化環節會分析以及優化方法的字節碼。混淆環節會用無意義的短變量去重命名類、變量、方法。這些步驟讓代碼更精簡,更高效,也更難被逆向(破解)

比如我們基于Restful開發一個用戶服務接口

  1. 可能你的項目結構會是這樣的:
packages...
├ entity
| ├ User
├ dao
| ├ UserDao
| ├ impl
| ├ UserDaoImpl
├ service
| ├ UserService
| ├ impl
| ├ UserServiceImpl
├ web
| ├ UserController

通過命令mvn package打包后,結構是這樣的:

圖片

  1. 現在引入proguard:

需要在pom.xml中build標簽中加入插件,具體配置如下:

<!-- ProGuard混淆插件-->
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<!-- 混淆時刻,這里是打包的時候混淆-->
<phase>package</phase>
<goals>
<!-- 使用插件的什么功能-->
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 是否將生成的PG文件安裝部署-->
<attach>true</attach>
<!-- 對什么東西進行加載,這里僅有classes成功,畢竟你也不可能對配置文件及JSP混淆吧-->
<injar>${project.build.finalName}.jar</injar>
<!--class 混淆后輸出的jar包-->
<outjar>${project.build.finalName}-pg.jar</outjar>
<!-- 是否混淆-->
<obfuscate>true</obfuscate>
<!-- 配置一個文件,通常叫做proguard.cfg,該文件主要是配置options選項,也就是說使用proguard.cfg那么options下的所有內容都可以移到proguard.cfg-->
<proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>
<!-- 指定生成文件分類 -->
<attachArtifactClassifier>pg</attachArtifactClassifier>
<!-- 額外的jar包,通常是項目編譯所需要的jar -->
<libs>
<lib>${java.home}/lib/rt.jar</lib>
</libs>
<!-- 對輸入jar進行過濾比如,如下配置就是對META-INFO文件不處理。 -->
<inLibsFilter>!META-INF/**</inLibsFilter>
<!-- 這是輸出路徑配置,但是要注意這個路徑必須要包括injar標簽填寫的jar -->
<outputDirectory>${project.basedir}/target</outputDirectory>
<!--這里特別重要,此處主要是配置混淆的一些細節選項,比如哪些類不需要混淆,哪些需要混淆-->
<options>
<!-- 可以在此處寫option標簽配置,不過我上面使用了proguardInclude,故而我更喜歡在proguard.cfg中配置 -->
</options>
</configuration>
</plugin>

其中配置文件proguard.cfg如下:

#指定Java的版本
-target 1.8
#proguard會對代碼進行優化壓縮,他會刪除從未使用的類或者類成員變量等
-dontshrink
#是否關閉字節碼級別的優化,如果不開啟則設置如下配置
-dontoptimize
#混淆時不生成大小寫混合的類名,默認是可以大小寫混合
-dontusemixedcaseclassnames
# 對于類成員的命名的混淆采取唯一策略
-useuniqueclassmembernames
#混淆時不生成大小寫混合的類名,默認是可以大小寫混合
-dontusemixedcaseclassnames
#混淆類名之后,對使用Class.forName('className')之類的地方進行相應替代
-adaptclassstrings

#對異常、注解信息予以保留
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
# 此選項將保存接口中的所有原始名稱(不混淆)-->
# -keepnames interface ** { *; }
# 此選項將保存所有軟件包中的所有原始接口文件(不進行混淆)
#-keep interface * extends * { *; }
#保留參數名,因為控制器,或者Mybatis等接口的參數如果混淆會導致無法接受參數,xml文件找不到參數
-keepparameternames
# 保留枚舉成員及方法
-keepclassmembers enum * { *; }
# 不混淆所有類,保存原始定義的注釋-
-keepclassmembers class * {
@org.springframework.context.annotation.Bean *;
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.stereotype.Service *;
@org.springframework.stereotype.Component *;
}

#忽略warn消息
-ignorewarnings
#忽略note消息
-dontnote
#打印配置信息
-printconfiguration
  1. 執行打包命令mvc package,可以看到target目錄下新增了幾個文件
  • obfuscation-pg.jar 混淆處理后的輸出jar
  • proguard_map.txt 存放混淆前后類、方法的對應關系
  • proguard_seed.txt 存放保持不變的類 可見包的名稱、類名都改成了短字母

圖片

實現技術

通過proguard來實現class內容的混淆相對比較簡單,當然還有很多其他的技術方法,比如上面說到的對class進行加密這種更安全的技術手段,感興趣的你可以繼續探究。

  • 其他技術
  • Jocky
  • retroguard
  • androidkiller
  • ClassFinal

結束語

此篇文章簡單介紹了java中的代碼混淆技術,我們可以根據具體的項目需求對編譯后的代碼進行混淆或加密處理,從而保護自己的勞動成果。開頭看到的docx4j企業級功能提供 的jar具體是怎么實現代碼保護的,目前還沒發現其具體采用了什么技術實現,后面繼續研究。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2017-11-09 14:40:49

懸浮Tab代碼

2020-11-20 10:22:34

代碼規范設計

2021-01-04 13:33:08

黑客微軟網絡攻擊

2020-05-15 09:30:12

代碼函數語言

2015-06-05 11:23:19

前端為什么不要你

2022-05-09 14:33:20

代碼設計設計模式

2018-03-12 11:52:44

2023-10-25 14:47:08

架構設計人工智能

2023-10-18 10:42:44

WOT大會架構架構演進

2020-06-17 07:42:14

C語言編程核心

2021-11-02 06:58:53

架構線程池參數

2020-04-29 14:50:40

代碼對比工具

2023-03-09 09:14:51

ChatGPTAI

2021-11-17 16:24:23

JS 代碼函數聲明

2024-07-25 14:36:10

2025-07-16 10:39:40

2020-03-02 19:08:21

JVMJDKJRE

2020-10-14 18:53:14

Python編程語言

2020-03-05 09:42:43

JavaJava虛擬機數據庫

2021-06-30 00:14:24

JS代碼數組
點贊
收藏

51CTO技術棧公眾號

欧美18视频| 亚洲嫩模很污视频| 水蜜桃色314在线观看| 亚洲精品久久久久久久久久久久久久| aⅴ色国产欧美| www.久久爱.com| 国产黄人亚洲片| 2019中文字幕在线观看| 女人又爽又黄免费女仆| 成人午夜888| 婷婷国产v国产偷v亚洲高清| 亚洲国产午夜伦理片大全在线观看网站| 国产又粗又长视频| 99热免费精品| 久久精品影视伊人网| 性久久久久久久久久久| 亚洲精品一区av| 欧美日韩国产丝袜另类| 一级黄色免费在线观看| 日韩黄色影片| 国产高清在线精品| 国产精品综合不卡av| 日韩精品在线不卡| 91精品国产91久久久久久密臀| 亚洲美女视频网站| 色综合久久久无码中文字幕波多| 亚洲欧洲自拍| 亚洲国产精品一区二区www| 亚洲精品国产精品国自产| 日本高清视频www| 国产一区二区成人久久免费影院| 国产精品久久久久久久久久三级 | 欧美极品欧美精品欧美视频| 免费看黄色三级| 日韩av网址大全| 精品久久久久久久人人人人传媒| 国产亚洲视频一区| 深夜视频一区二区| 一本色道久久加勒比精品| xxxx18hd亚洲hd捆绑| 青草青在线视频| 亚洲欧洲精品一区二区三区| 婷婷五月色综合| 九色视频在线观看免费播放| 99re亚洲国产精品| 国产成人精品福利一区二区三区 | 国产另类xxxxhd高清| 天天综合天天综合色| 欧美亚洲黄色片| 污污视频在线看| 亚洲美女在线国产| 天堂av免费看| 污视频在线看网站| 亚洲另类色综合网站| 异国色恋浪漫潭| 黄色av电影在线观看| 国产精品成人免费| 香蕉精品视频在线| 黄视频网站在线看| 亚洲精品国产精品乱码不99| 只有这里有精品| 18视频在线观看网站| 亚洲美女在线一区| www.av毛片| 精品众筹模特私拍视频| 亚洲一二三四区| 日韩欧美视频网站| 伊人久久综合一区二区| 色爱区综合激月婷婷| 国产视频手机在线播放| 国产精品久久乐| 日韩一区二区三区精品视频| 国产无套精品一区二区三区| 精品国产一区二区三区成人影院| 亚洲精品福利在线| 好吊视频在线观看| 久久综合电影| 欧美激情国产精品| 九九九在线观看| 蜜臀久久99精品久久久久宅男 | www.日本在线观看| 不卡影院免费观看| 日本不卡高清视频一区| 美女av在线播放| 亚洲自拍欧美精品| 青青视频在线播放| 日韩色性视频| 亚洲国产成人久久| 中文天堂资源在线| 国产精品porn| 日本欧美精品在线| 国产免费黄色片| 99久久久精品| 一区二区三区四区在线视频| 三级网站视频在在线播放| 欧美日韩亚洲一区二区| 性生活免费在线观看| 91亚洲无吗| 伊人伊成久久人综合网小说| 九九视频在线观看| 日韩精品一级二级| 国产精品日韩欧美一区二区| 国产福利在线看| 一区二区高清视频在线观看| 妓院一钑片免看黄大片| 国产一区二区三区免费观看在线| 欧美电影在线观看完整版| 午夜一区二区三区在线观看| 日韩欧美黄色大片| 日韩有吗在线观看| 国产亚洲成av人片在线观看桃| 欧美三级日本三级| 琪琪一区二区三区| 久久大香伊蕉在人线观看热2| 日本电影在线观看网站| 岛国精品视频在线播放| 亚洲一级片av| 成人区精品一区二区婷婷| 高清一区二区三区日本久| 亚洲最大成人av| 久久久天堂av| 久久av综合网| 国产一区二区三区| 在线精品国产成人综合| yjizz国产| 成人免费黄色大片| 成人午夜免费剧场| 欧美成人福利| 在线播放国产精品| 国产成人综合欧美精品久久| 国产传媒一区在线| 天天成人综合网| a∨色狠狠一区二区三区| 国产丝袜精品视频| 日韩欧美国产亚洲| 成人精品国产福利| 成人在线观看毛片| 亚洲欧美日韩中文字幕在线观看| 日韩不卡视频在线观看| 日韩精品小视频| 国产精品日日夜夜| 国产·精品毛片| 黄色小视频大全| 国产精品一区二区三区www| 中文字幕在线亚洲| 亚洲天天综合网| 国产女同性恋一区二区| 欧美两根一起进3p做受视频| 亚洲精品国产动漫| 26uuu久久噜噜噜噜| 色鬼7777久久| 欧美性xxxx极品高清hd直播| jizz欧美性20| 久久一二三区| 亚洲v日韩v欧美v综合| 99只有精品| www.xxxx欧美| aa视频在线免费观看| 亚洲精品欧美激情| 亚洲av午夜精品一区二区三区| 亚洲综合五月| av成人午夜| 国产福利在线免费观看| 精品国产成人在线影院| 日本三级欧美三级| 91偷拍与自偷拍精品| 欧美xxxxx在线视频| 精品国产91久久久久久浪潮蜜月| 国产精品久久久久久久久久尿 | 国产精品女主播av| 色婷婷亚洲一区二区三区| 白嫩少妇丰满一区二区| 欧美另类69xxxxx| 国产日韩欧美在线视频观看| 黄色av电影在线播放| 欧美mv日韩mv国产网站| 日韩欧美不卡视频| 日本一区二区三区四区| 两性午夜免费视频| 黄页网站一区| 日韩欧美精品在线不卡| 国产不卡精品在线| 欧美激情综合色| 男男激情在线| 欧美另类高清zo欧美| 久草视频免费在线播放| 91看片淫黄大片一级| 一道本视频在线观看| 欧美三级午夜理伦三级中文幕| 久久久综合亚洲91久久98| 97久久网站| 色综合色综合久久综合频道88| 日韩中文字幕免费观看| 欧美日韩亚洲综合一区| 国产乡下妇女做爰毛片| 国产欧美一区二区三区网站| 人妻精品久久久久中文字幕69| 国产精品一级| 激情视频小说图片| 久久99国内| 91免费看蜜桃| 激情久久99| 97香蕉久久超级碰碰高清版| 久久久久久久中文| 日本a人精品| 91黑丝高跟在线| 日本亚洲精品| 精品一区二区三区四区| 国产又粗又黄又爽的视频| 欧美日韩美女视频| 91视频综合网| 国产精品青草综合久久久久99| xfplay5566色资源网站| 韩国成人精品a∨在线观看| 国产精品免费入口| 欧美精品aa| 艳母动漫在线观看| 国产一区99| 久久久久久久久久码影片| 精品精品视频| 国产日本欧美一区二区三区| 成人私拍视频| 久久人人爽人人| 最新av在线播放| 丝袜亚洲另类欧美重口| 黄色在线网站| 日韩精品在线播放| 狠狠综合久久av一区二区| 欧美丰满美乳xxx高潮www| 日本黄色一级视频| 狠狠色噜噜狠狠狠狠97| 国产主播在线播放| 亚洲男人天堂av| 亚洲色图27p| 国产精品国产自产拍高清av王其| 国产精品815.cc红桃| 99久久婷婷国产综合精品| 亚洲成人福利视频| 国产美女精品一区二区三区| 九九精品久久久| 欧美aaaaa成人免费观看视频| 人妻精品无码一区二区三区| 99热精品在线观看| 国产中文字幕二区| 亚洲精品孕妇| 欧美日韩一道本| 99精品免费| 成熟了的熟妇毛茸茸| 亚洲欧美一级| 亚洲人成小说网站色在线 | 国产精华7777777| 色欧美88888久久久久久影院| 日本午夜视频在线观看| 欧美日韩激情视频| 亚洲另类欧美日韩| 日韩欧美成人区| 波多野结衣二区三区| 欧美最猛黑人xxxxx猛交| jizz国产在线| 欧美日韩www| 国产一区二区女内射| 91精品免费在线| 亚洲成人黄色片| 亚洲国产成人精品女人久久久 | 成人直播大秀| 正在播放91九色| 在线看片不卡| 国产真人做爰毛片视频直播| 国产深夜精品| 天天插天天操天天射| 狠狠色丁香九九婷婷综合五月| 久久久久久久久久毛片| 懂色av一区二区在线播放| 先锋资源av在线| 国产欧美日韩三区| 懂色av懂色av粉嫩av| 亚洲成a人片在线不卡一二三区| 精品成人久久久| 欧美网站一区二区| 国产成a人亚洲精v品无码| 亚洲黄色在线看| 国产精品麻豆一区二区三区| 久久婷婷国产麻豆91天堂| 久久99亚洲网美利坚合众国| 欧美中文在线视频| 日韩一区中文| 国产原创精品| 久久视频精品| 玩弄中年熟妇正在播放| 蜜臀av亚洲一区中文字幕| 永久av免费在线观看| 91香蕉视频在线| 免费看特级毛片| 精品久久久久久久久久久久久| 一本一道精品欧美中文字幕| 亚洲国产日韩欧美在线图片| 欧美三级视频网站| 成人亚洲网站| 国产精品日韩欧美一区二区| 精品国产一区二区三区av片| 蜜臀精品一区二区| 久久精品官网| 久久久久亚洲av无码网站| 国产亚洲欧美日韩日本| 黄色一级视频免费| 欧洲一区在线电影| 欧美一级在线免费观看| www日韩中文字幕在线看| 欧美男男tv网站在线播放| 亚洲精品欧美日韩| 欧美日韩激情| 99色精品视频| 国产成a人无v码亚洲福利| 国产又粗又长又硬| 色妞www精品视频| 亚洲黄色片视频| 久久香蕉国产线看观看av| 人人视频精品| 九九九九精品九九九九| 欧美日韩国产欧| 潘金莲激情呻吟欲求不满视频| 久久伊人中文字幕| 国产精品日日夜夜| 日韩午夜中文字幕| 毛片网站在线免费观看| 国产精品成人观看视频国产奇米| 激情小说一区| 日本国产中文字幕| 激情综合网av| 强制高潮抽搐sm调教高h| 欧美性色欧美a在线播放| 青青青手机在线视频观看| 国内精品久久久| 亚洲专区**| 99热这里只有精品免费| 激情综合色播五月| 国产极品美女在线| 欧美高清一级片在线| 日韩精品黄色| 国产精品高潮呻吟久久av无限| 日韩精品社区| 日批视频在线免费看| www.成人在线| 成人精品免费在线观看| 91视频一区二区| 日韩影院一区| 国产情侣久久| 熟女少妇一区二区三区| 日韩欧美亚洲一二三区| 天天操天天舔天天干| 668精品在线视频| 亚洲va久久久噜噜噜久久| 激情综合在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 精品国精品国产自在久不卡| 美女视频黄免费的亚洲男人天堂| 日本少妇精品亚洲第一区| 黄色一级片av| 福利一区二区在线| 日韩精品乱码久久久久久| 亚洲国产天堂久久国产91| 日韩电影毛片| 日韩精品一线二线三线| 久久国产福利国产秒拍| 国产成人久久久久| 欧美成人乱码一区二区三区| 爱福利在线视频| 久久精品丝袜高跟鞋| 久久av在线| 国产白丝一区二区三区| 91精品蜜臀在线一区尤物| 美女网站视频在线| 精品一区二区三区自拍图片区| 丝瓜av网站精品一区二区| 少妇视频一区二区| 欧美一区二区三区四区五区| 岛国av在线网站| 婷婷四房综合激情五月| 国产乱国产乱300精品| wwwxxx亚洲| www.久久久久| 久9re热视频这里只有精品| 韩国日本美国免费毛片| 一色屋精品亚洲香蕉网站| 亚洲精品18p| 日本一本a高清免费不卡| 国产精品久久久久蜜臀 | 操欧美女人视频| 国产日韩一区二区在线| 综合电影一区二区三区 | 草逼视频免费看| 日本国产欧美一区二区三区| 香蕉精品视频在线观看| 欧美夫妇交换xxx| 欧美欧美欧美欧美| 成人观看网址| 日韩不卡一二区| 久久精品在线免费观看| 成人免费公开视频| 国产精品久久久久久av|