当前位置: 首页 > news >正文

Proguard代码混淆-springboot3

一、背景介绍

我们交付软件的时候,有时候不想把源代码程序泄露出去,就需要对软件产品做一些机器混淆处理,以降低其可读性和被破解的风险。

以java软件开发为例子,目前java开发用的最多的框架技术是springboot,而现如今springboot最流行的版本已经达到了3.0以上。

本文作者亲测打包部署,springboot jar包,并使用proguard-maven-plugin插件,对编译后的代码进行再次混淆,而不改变jar包的功能特性,从而有效保护了开发者的劳动成果。

本次测试的软件开发环境:

java版本:17

springboot:3.2

mysql:8.0

二、关于proguard

据proguard官网介绍,其可以对java字节码文件进行优化、压缩、混淆等。

但是proguard官网并未提供Java idea开发工具的maven插件,proguard官网也标注了下载相关maven插件的其它网站:

Some open-source implementations:

  • https://github.com/wvengen/proguard-maven-plugin
  • https://github.com/dingxin/proguard-maven-plugin

如果下载有问题,可以添加文末微信好,免费领取。

三、proguard混淆jar包实操

 1 pom文件添加proguard 相关plugin

2 配置代码混淆相关属性(几个关键配置)

2.1 保留springboot main方法入口

2.2 如果项目是多模块(modal)的

如果项目是多模块(modal)的,将其它相关依赖模块也进行代码混淆,而不是让其它模块以jar包的形式,存放在lib目录中。

首先,在configuration中增添inclusion

其次,在原sprongbootmaven-plugin下排除掉lib选项

2.3 指定java版本17

本文,是在springboot3项目中实操proguard用法,其中项目使用maven工具管理依赖文件,项目采用父子modal的多modal形式,最终打包成了一个主modal文件,即整个工程最终通过一个jar文件来运行。

完整proguard代码混淆配置示例在工程的pom文件中,

示例程序获取通道请点击这里

更多问题咨询,请添加小编wx好友👇👇👇

http://www.xdnf.cn/news/699913.html

相关文章:

  • UART通信HAL库API
  • AI+行业全景图:医疗/教育/金融领域的应用现状
  • [C]基础16.数据在内存中的存储
  • 如何删除PC上除Windows10操作系统之外的所有内容
  • C++ 写单例的办法
  • 北京大学肖臻老师《区块链技术与应用》公开课:04-BTC-共识协议
  • Linux下基本指令的介绍
  • PINN是否需要对空间进行网格化
  • 挖o心得(4)
  • 【深度学习-pytorch篇】4. 正则化方法(Regularization Techniques)
  • 使用u盘重装银河麒麟操作系统
  • 【人工智能】微调革命:释放大模型的无限潜能
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论软件测试方法及应用(包括解题思路和参考素材)
  • 社交类网站设计:经典feed流系统架构详细设计(小红书微博等)
  • window 显示驱动开发-处理 E_INVALIDARG 返回值
  • ArgoDB表类型及常用命令
  • 491. Non-decreasing Subsequences
  • DeepSeek R1 与 V3 的全面对比,两个版本有什么差别?
  • 【Linux】linux上看到的内存和实际内存不一样?
  • Linux云计算训练营笔记day17(Python)
  • Cisco Packer Tracer 组建虚拟局域网(VLAN)
  • 【前端】【Jquery】一篇文章学习Jquery所有知识点
  • keepalived两台设备同时出现VIP问题
  • MySql--explain的用法
  • 【Linux网络篇】:简单的TCP网络程序编写以及相关内容的扩展
  • css样式块重复调用
  • 楼宇自控系统重塑建筑设备管理:告别低效,迈向智能管理时代
  • 华为OD机试真题——书籍叠放(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • Linux系统之cal命令的基本使用
  • 国有企业采购方式及适用情形