chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SpringBoot項(xiàng)目Jar包加密防止反編譯方案

jf_ro2CN3Fa ? 來(lái)源:稀土掘金技術(shù)社區(qū) ? 2023-12-12 14:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 場(chǎng)景

最近項(xiàng)目要求部署到其他公司的服務(wù)器上,但是又不想將源碼泄露出去。要求對(duì)正式環(huán)境的啟動(dòng)包進(jìn)行安全性處理,防止客戶直接通過(guò)反編譯工具將代碼反編譯出來(lái)。

2 方案

第一種方案使用代碼混淆

采用proguard-maven-plugin插件

在單模塊中此方案還算簡(jiǎn)單,但是現(xiàn)在項(xiàng)目一般都是多模塊,一個(gè)模塊依賴多個(gè)公共模塊。那么使用此方案就比較麻煩,配置復(fù)雜,文檔難懂,各模塊之間的調(diào)用在是否混淆時(shí)極其容易出錯(cuò)。

第二種方案使用代碼加密

采用classfinal-maven-plugin插件

此方案比對(duì)上面的方案來(lái)說(shuō),就簡(jiǎn)單了許多。直接配置一個(gè)插件就可以實(shí)現(xiàn)源碼的安全性保護(hù)。并且可以對(duì)yml、properties配置文件以及l(fā)ib目錄下的maven依賴進(jìn)行加密處理。若想指定機(jī)器啟動(dòng),支持綁定機(jī)器,項(xiàng)目加密后只能在特定機(jī)器運(yùn)行。

ClassFinal項(xiàng)目源碼地址 [1]

3 項(xiàng)目操作

只需要在啟動(dòng)類(lèi)的pom.xml文件中加如下插件即可,需要注意的是,改插件時(shí)要放到spring-boot-maven-plugin插件后面,否則不起作用。




org.springframework.boot
spring-boot-maven-plugin


 
net.roseboy
classfinal-maven-plugin
1.2.1

# 
org.spring
${groupId} 
application.yml,application-dev.yml 
hutool-all.jar 
xxxx 



package

classFinal






4 啟動(dòng)方式

無(wú)密碼啟動(dòng)

java-javaagent:xxx-encrypted.jar-jarxxx-encrypted.jar

有密碼啟動(dòng)

java-javaagent:xxx-encrypted.jar='-pwd=密碼'-jarxxx-encrypted.jar

5 反編譯效果

啟動(dòng)包加密之后,方法體被清空,保留方法參數(shù)、注解等信息.主要兼容swagger文檔注解掃描

反編譯只能看到方法名和注解,看不到方法體的具體內(nèi)容

啟動(dòng)過(guò)程中解密class,完全內(nèi)存解密,不留下任何解密后的文件

d09c1e84-9740-11ee-8b88-92fbcf53809c.jpg

yml配置文件留下空白

d0b29e7a-9740-11ee-8b88-92fbcf53809c.jpg

6 綁定機(jī)器啟動(dòng)

下載到classfinal-fatjar-1.2.1.jar [2]依賴,在當(dāng)前依賴下cmd執(zhí)行java -jar classfinal-fatjar-1.2.1.jar -C命令,會(huì)自動(dòng)生成一串機(jī)器碼

d0c5871a-9740-11ee-8b88-92fbcf53809c.jpg

將此生成好的機(jī)器碼,放到maven插件中的code里面即可。這樣,打包好的項(xiàng)目只能在生成機(jī)器碼的機(jī)器運(yùn)行,其他機(jī)器則啟動(dòng)不了項(xiàng)目。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    678

    瀏覽量

    30855
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4922

    瀏覽量

    72250
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    342

    瀏覽量

    23318
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    175

    瀏覽量

    558

原文標(biāo)題:SpringBoot 項(xiàng)目 Jar 包加密,防止反編譯

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    怎樣防止編譯后的C語(yǔ)言文件被反編譯?

    單片機(jī)C語(yǔ)言生成什么文件后可以防止反編譯?
    發(fā)表于 09-14 15:25

    DEX加密效果分析

    dex加密目的:保護(hù)安卓應(yīng)用的Java源代碼,避免被惡意分析,技術(shù)被竊取準(zhǔn)備工具:1、apktool :反編譯apk,提取smali代碼2、dex2jar :將dex轉(zhuǎn)化為jar文件3
    發(fā)表于 12-12 16:56

    請(qǐng)問(wèn)如何打jar和運(yùn)行jar?

    如何打jar和運(yùn)行jar 首先,例如c盤(pán)根目錄下有類(lèi)HelloWorld.java: public class HelloWorld{ public static void mai
    發(fā)表于 07-05 01:08

    JAR文件jar命令詳解

    制作可執(zhí)行的JAR文件jar命令詳解常常在網(wǎng)上看到有人詢問(wèn):如何把 java 程序編譯成 .exe 文件。通?;卮鹬挥袃煞N,一種是制作一個(gè)可執(zhí)行的
    發(fā)表于 07-12 08:37

    幾種Linux下后臺(tái)啟動(dòng)jar的方法介紹

    ??當(dāng)我們使用SpringBoot的方式開(kāi)發(fā)好了我們的應(yīng)用,放到我們的Linux服務(wù)器上準(zhǔn)備上線,首先想到的可能就是通過(guò) java -jar xxx.jar 的方式來(lái)運(yùn)行我們的jar
    發(fā)表于 07-22 08:02

    8051系列單片機(jī)反編譯軟件(工具)

    8051系列單片機(jī)反編譯軟件(工具):最好的8051系列單片機(jī)反編譯軟件(window版)
    發(fā)表于 10-12 10:58 ?275次下載
    8051系列單片機(jī)<b class='flag-5'>反編譯</b>軟件(工具)

    反編譯代碼與源代碼的比較算法

    反編譯代碼與源代碼的
    發(fā)表于 02-09 15:19 ?10次下載

    FoxPro編程愛(ài)好者的反編譯工具源代碼

    FoxPro編程愛(ài)好者的反編譯工具源代碼 UNFOXALL 2.1獻(xiàn)給廣大FoxPro編程愛(ài)好者的反編譯工具            關(guān)于
    發(fā)表于 02-26 16:13 ?94次下載

    Android反編譯工具

    Android反編譯工具
    發(fā)表于 12-17 15:59 ?21次下載

    鴻蒙三方庫(kù)移植及開(kāi)發(fā)項(xiàng)目如何打入Jar

    鴻蒙三方庫(kù)移植及開(kāi)發(fā)項(xiàng)目中,在JavaLibrary module中會(huì)引用一些其他開(kāi)源三方庫(kù)如Zxing,Gson等,將JavaLibrary打出jar的時(shí)候,發(fā)現(xiàn)這些第三方庫(kù)根本沒(méi)有打到j
    的頭像 發(fā)表于 03-19 14:46 ?3644次閱讀

    java反編譯常用的保護(hù)技術(shù)

    由于Java字節(jié)碼的抽象級(jí)別較高,因此它們較容易被反編譯。本節(jié)介紹了幾種常用的方法,用于保護(hù)Java字節(jié)碼不被反編譯。通常,這些方法不能夠絕對(duì)防止程序被反編譯,而是加大
    發(fā)表于 07-29 16:00 ?917次閱讀

    SpringBoot部署打包成jar和war有什么不同呢?

    我的一個(gè)springboot項(xiàng)目,用mvn install打包成jar,換一臺(tái)有jdk的機(jī)器就直接可以用java -jar 項(xiàng)目名.
    的頭像 發(fā)表于 04-07 11:30 ?1231次閱讀

    ida反編譯出來(lái)代碼能直接用嗎

    IDA反編譯出來(lái)的代碼通常 不能直接使用 ,這主要基于以下幾個(gè)方面的原因: 一、代碼的不完整性 IDA反編譯生成的代碼可能缺少原始源代碼中的某些關(guān)鍵信息。在編譯過(guò)程中,編譯器會(huì)優(yōu)化代碼
    的頭像 發(fā)表于 09-02 10:55 ?1713次閱讀

    java反編譯的代碼可以修改么

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回源代碼的過(guò)程。反編譯后的代碼可以進(jìn)行修改,但是需要注意,反編譯代碼的質(zhì)量和可讀性可能會(huì)受到原始
    的頭像 發(fā)表于 09-02 11:00 ?1551次閱讀

    java反編譯能拿到源碼嗎

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回Java源代碼的過(guò)程。雖然反編譯可以幫助理解代碼的邏輯和結(jié)構(gòu),但它并不總是能完美地還原原始源代碼。反編譯工具通常會(huì)
    的頭像 發(fā)表于 09-02 11:03 ?2088次閱讀