国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

java混淆了嗎

mumumu / 2841人閱讀

摘要:前言最近在項(xiàng)目中碰到個(gè)一個(gè)場(chǎng)景,我們需要把自己的項(xiàng)目包部署到一個(gè)第三方的服務(wù)器上,雖然雙方互相信任,但是綜合考慮,避免別人拿到包后可以很快的編譯出源碼,我們決定給代碼加一層混淆,雖然此方法不能從根源上解決問(wèn)題,但是做了一層混淆,也可以增加閱

前言

最近在項(xiàng)目中碰到個(gè)一個(gè)場(chǎng)景,我們需要把自己的java項(xiàng)目jar包部署到一個(gè)第三方的服務(wù)器上,雖然雙方互相信任,但是綜合考慮,避免別人拿到j(luò)ar包后可以很快的編譯出源碼,我們決定給代碼加一層混淆,雖然此方法不能從根源上解決問(wèn)題,但是做了一層混淆,也可以增加閱讀源碼的難度,總結(jié)了一下,寫(xiě)下這篇文章。

如何反編譯java代碼

我用的是mac電腦,從官網(wǎng):http://java-decompiler.github...下載JD-GUI,官網(wǎng)有很多版本,下載后安裝打開(kāi)即可,導(dǎo)入你想反編譯的jar,我這里隨便找了個(gè)jar包做演示

何為java混淆

細(xì)心的小伙伴肯定發(fā)現(xiàn)了,上面的截圖有的包名是a,b,c這樣命名的,但凡有點(diǎn)節(jié)操的程序員都不會(huì)這樣命名的,這就是被混淆后的代碼,讓人不會(huì)一眼看出來(lái)代碼里面的邏輯,效果會(huì)像下面這樣

可以看到類名,包名都被修改了

進(jìn)行java混淆

我們以之前springboot項(xiàng)目為例,進(jìn)行service層的代碼的混淆,混淆前效果如下:



接下來(lái)我們只需要在pom里面加入如下插件

              
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    1.7
                    1.7
                    UTF-8
                
            
            
                com.github.wvengen
                proguard-maven-plugin
                2.0.14
                
                    
                        package
                        
                            proguard
                        
                    
                
                
                    6.1.0beta2
                    ${project.build.finalName}.jar
                    ${project.build.finalName}.jar
                    true
                    
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                    
                    true
                    
                        
                        ${java.home}/lib/rt.jar
                    
                
                
                    
                        net.sf.proguard
                        proguard-base
                        6.1.0beta2
                    
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            

執(zhí)行打包命令:mvn package,會(huì)看到生成如下

我們看到了生成了不只一個(gè)jar包,還有一些別的文件,這個(gè)我們放后面介紹,我們先看下劃紅線的jar反編譯后的效果


可以看到我們針對(duì)service包下面的類混淆成功了

注意點(diǎn)

zplxjj_proguard_base.jar是沒(méi)有經(jīng)過(guò)混淆的jar

兩個(gè).txt文件說(shuō)明了混淆前和混淆后的對(duì)應(yīng)關(guān)系

如果項(xiàng)目中引入了spring框架,類的注入id要保持唯一性,否則就要重寫(xiě)生成bean的id規(guī)則的方法

更多pom文件細(xì)節(jié)可以參考:https://www.guardsquare.com/e...

更多文章可關(guān)注個(gè)人博客:https://www.zplxjj.com和公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74918.html

相關(guān)文章

  • 你有freestatic嗎?

    摘要:小節(jié)也有類似的栗子,其結(jié)論是靜態(tài)方法不具有多態(tài)性。來(lái)自一個(gè)有趣的問(wèn)題靜態(tài)字段論述的問(wèn)題大致是說(shuō)以上兩個(gè)類中各有幾個(gè)方法本質(zhì)其實(shí)就是有無(wú)時(shí)的區(qū)別。 Demo1 來(lái)自關(guān)于java中static一個(gè)有意思的小案例: class Employee { private static Employee employee = new Employee(); public static...

    cppprimer 評(píng)論0 收藏0
  • 關(guān)于python編碼,你真的明白了嗎

    摘要:二進(jìn)制位,是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲(chǔ)存的最小單位,是一個(gè)位二進(jìn)制數(shù)。由于源代碼也是一個(gè)文本文件,所以,當(dāng)你的源代碼中包含中文的時(shí)候,在保存源代碼時(shí),就需要?jiǎng)?wù)必指定保存為編碼。 計(jì)算機(jī)存儲(chǔ)的幾個(gè)概念 想要徹底搞清楚編碼問(wèn)題,我們必須要先搞清楚計(jì)算機(jī)是怎么存儲(chǔ)數(shù)據(jù)的,這就涉及到了計(jì)算機(jī)基礎(chǔ)的幾個(gè)概念了,開(kāi)篇我們就先來(lái)捋捋這幾個(gè)容易混淆的概念。 bit 二進(jìn)制位, 是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲(chǔ)存的最小單位,1...

    darcrand 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<