【项目部署】xjar加密SpringBoot项目防止源码泄露
创始人
2024-06-01 07:54:08
0

0. 前言

在部署SpringBoot项目时,如果不对其进行加密,源码就会有泄露的风险。具体来说,当攻击者获得到我们部署的jar包之后,通过jd-gui工具对其进行反编译即可看到源码。所以需要在打包之前对项目文件进行加密。我查到的加密工具有xjarProguard等。这篇文章以xjar为例对SpringBoot项目进行加密打包。

1. 准备工作

  • 开发环境下(windows)下载maven,用于打包SpringBoot项目
  • 开发环境下(windows)下载jd-gui,用于对打包文件进行反编译
  • 部署环境下(Linux)下载go,用于对xjar打包的go文件进行编译

maven
jd-gui
go

2. SpringBoot添加xjar依赖

2.1 修改pom.xml文件

主要添加两个东西:

  • jitpack.io插件仓库
  • xjar插件

jitpack.iohttps://jitpack.io
xxxcom.github.core-libxjar-maven-plugin4.0.2xjarpackagebuild${project.artifactId}-xjar.jar // 加密打包后的文件名

2.2 可能遇到的bug

2.2.1 没有添加jitpack.io

打包的时候会遇到下载的问题。

2.2.2 将password写在configuration配置节中

有的博客会把xjar打包所用的密码直接写到configuration配置节中,比如:


${project.artifactId}-xjar.jaryour_password  // 直接把密码写在这里
        

这样仍然会有问题。xjar是不会加密pom.xml文件的。当打包完成之后,攻击者对jar包进行反编译,还是可以看到打包所使用的密码,从而造成泄露。在第3步中会讲解密码应该写在哪里。

3. 加密打包

打开终端,执行如下命令:

mvn clean package -Dxjar.password= # 密码应该写在这里

产生的目录结构为:
在这里插入图片描述

其中,xxx-xjar.jar是加密打包后的文件(文件名和在pom.xml中配置的相同)。之后我们部署主要用到两个文件:xxx-xjar.jarxjar.go

4. 测试加密效果

这里准备两版打包文件:没有使用xjar打包的未加密jar包(假设名字为xxx.jar)、使用了xjar打包的加密jar包(xxx-xjar.jar)。然后用jd-gui分别打开xxx.jarxxx-xjar.jar,观察文件结果。

这里就不放截图了,文字说明一下加密后的文件:文件大部分都为空,或者是乱码。

5. 项目部署

首先把xxx-xjar.jarxjar.go上传到服务器上,然后对xjar.go文件进行编译:

go build xjar.go

这一步会生成一个可执行文件xjar。然后执行命令:

xjar java -jar xxx-xjar.jar

项目启动成功,说明部署完成。

参考资料

SpringBoot2 集成xJar插件 动态解密jar包,避免源码泄露或反编译
xjar加密jar包
Linux操作系统配置Go编程环境

相关内容

热门资讯

40多元一斤!杭州不少人在卖,... 近日,萧山一网友在网上发帖:银锭灰还挺值钱的,目前价格41元一斤,卖了1470元,还有一些甲鱼壳和蜡...
知名男演员身份证照片引热议!杭... 7月6日,#金世佳你身份证掉了#消息冲上热搜,有网友发帖称在上海市徐汇一公园捡到了演员金世佳的身份证...
从“逐水草而居”到“向幸福而行... 在阿里地区日土县热帮乡,龙门卡村静静坐落于高原牧场间,这里是牧民们世代生活的家园。回溯至60年前西藏...
从七七事变到北平沦陷,21天里... 88年前的今天,日本军队诡称因在演习中丢失一名士兵,要求进入宛平城搜索。随后,29军军部拒绝了日军的...
商务部支持自贸试验区进一步主动... 中国工业报记者   孟凡君自贸试验区是改革开放的“排头兵”,创新发展的“先行者”。2025年1-5月...
科隆股份:持续跟进碱性制氢电极... 投资者提问:公司现在氢能业务还在开展吗,电解槽业务还做吗,有没有最新进展,中试怎么样了董秘回答(科隆...
【兰洽会观察】央地协同成果丰 ... 【兰洽会观察】央地协同成果丰 融合发展谱新篇——2025年甘肃省与中央企业融合发展恳谈会观察  新甘...
2025年兰州中考成绩今日10... 2025年兰州中考成绩今日公布每日甘肃网7月7日讯 据兰州日报报道 2025年兰州中考成绩7月7日1...
众捷汽车:主要产品含电池冷却器... 投资者提问:公司是否有电池热管理系统?董秘回答(众捷汽车SZ301560):尊敬的投资者,您好!公司...