SpringBoot使用classfinal-maven-plugin插件加密Jar包

jar包加密

1、在启动类的pom.xml中加入classfinal-maven-plugin插件

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>net.roseboy</groupId><artifactId>classfinal-maven-plugin</artifactId><version>1.2.1</version><configuration><password>#</password>              <!--启动密码,#为空--><excludes>org.spring</excludes><packages>${groupId}</packages>     <!--需要加密的包名,有多个使用逗号分隔--><cfgfiles>application.yml,spy.properties,ehcache.xml</cfgfiles>     <!--需要加密的配置文件,有多个使用逗号分隔--><libjars>SuperDog.jar</libjars>				<!--jar包lib目录下要加密的jar依赖,有多个使用逗号分隔--><code></code>                       <!--机器码,指定某个机器启动--></configuration><executions><execution><phase>package</phase><goals><goal>classFinal</goal></goals></execution></executions></plugin></plugins>
</build>

2、在右侧的maven工具栏中使用install,xxx-encrypted.jar是加密后的jar包
在这里插入图片描述
3、加密后的jar包不能直接运行,要设置javaagent来启动,启动过程中会解密

//无密码启动
java -javaagent:APF_AssetServer-encrypted.jar -jar APF_AssetServer-encrypted.jar//有密码启动
java -javaagent:APF_AssetServer-encrypted.jar='-pwd=密码' -jar APF_AssetServer-encrypted.jar//增加其他参数启动
java -javaagent:APF_AssetServer-encrypted.jar -jar -Xmx512m -Xms512m APF_AssetServer-encrypted.jar --spring.profiles.active=APF_AssetServer-encrypted

反编译效果

class文件只能看到方法名、参数和注解,方法内容被清空
配置文件变成空白
在这里插入图片描述
在这里插入图片描述

绑定机器启动

1、下载 classfinal-fatjar-1.2.1.jar
2、执行 java -jar classfinal-fatjar-1.2.1.jar -C
3、将生成的机器码,放到maven插件的code里
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2811977.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Qt QWidget 简约美观的加载动画 第五季 - 小方块风格

给大家分享两个小方块风格的加载动画 &#x1f60a; 第五季来啦 &#x1f60a; 效果如下: 一个三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *arg…

Python之词频统计(自然语言处理)

背景 词频统计是指对一段文本中每个单词出现的次数进行计数分析。这种分析有助于了解文本的重点词汇、主题或作者的写作风格。如果你有一个特定的文本或想要分析某些内容的词频&#xff0c;你可以提供文本&#xff0c;我可以为你进行简单的词频统计。 例如&#xff0c;如果你…

jeesite用字典项配置二级下拉选

1、配置字典项 2、html代码&#xff1a;修改下拉选项框 <div class"col-xs-6"><div class"form-group"><label class"control-label col-sm-4" title""><span class"required">*</span> ${…

备考北京高考数学:历年选择题真题练一练和解析(2014-2023)

还有三个多月的时间就要高考了&#xff0c;我们今天继续看北京市高考数学真题和解析。今天看5道选择题。独家制作的在线练习集&#xff0c;可以便捷地反复刷这些真题&#xff0c;吃透真题&#xff08;背后的知识点和解题技巧&#xff09;&#xff0c;让高考数学再上一个台阶。 …

OpenAI Sora 关键技术详解:揭秘时空碎片 (Spacetime Patches) 技术

编者按&#xff1a;近日&#xff0c;OpenAI发布其首个视频生成模型“Sora”&#xff0c;该模型生成的视频内容可以呈现出多个角色、特定动作以及复杂场景&#xff0c;为构建能够理解和模拟现实世界的人工智能模型奠定了基础。 本文解析的重点即是 Sora 背后的核心技术 Spacetim…

单片机51 定时器

一、基本概念 1.1简介 单片机的定时器是一种内部功能模块&#xff0c;用于产生计时、计数、延时等功能。定时器通常由一个或多个计数器和相关的控制逻辑组成。单片机的定时器可以运行在不同的工作模式下&#xff0c;以适应不同的计时和计数需求。 C51中的定时器和计数器是同…

Tomcat 下部署若依单体应用可观测最佳实践

实现目标 采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户访问前端的一系列过程的会话录制信息&#xff0c;包括点击某个按钮、操作界面、停留时间等&#xff0c;有助于客户真是意图、操作复现 版本信息 Tomcat (9.0.81)Springboot(2.6.2)JDK (>8)DDT…

请求包的大小会影响Redis每秒处理请求数量

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容压测规划客户端长连接数量对性能的影响请求包大小的影响Pipleline模式对Redis的影响 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff0c;一名Java开发工程师、Java领…

第二章 Xshell5连接VM中虚拟系统Ubuntu1704

第二章 Xshell5连接VM中虚拟系统Ubuntu1704 第一章 Win10系统VM安装Ubuntu1704虚拟机 第三章 VMware虚拟机ubuntu显示屏幕太小&#xff0c;无法自适应解决办法 一、设置全新安装的Ubuntu的root密码 1.1、启动Ubuntu系统&#xff0c;在桌面右键打开终端 1.2、尝试登陆root用户…

【postgresql】数据表id自增与python sqlachemy结合实例

需求&#xff1a; postgresql实现一个建表语句&#xff0c;表名&#xff1a;student,字段id,name,age&#xff0c; 要求&#xff1a;每次添加一个数据id会自动增加1 在PostgreSQL中&#xff0c;您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

TiDB之分布式数据库TiDB 操作管理规范【附可下载文档】

一、 目的 为了在软件生命周期内规范数据库相关的设计、开发、运维工作,便于不同团队之间的沟通及协调,制定此文档,以期在相关规范上达成共识和默契,提升相关环节的工作效率及系统的可维护性。同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好保证…

EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成

EMQX Enterprise 5.5.0 版本已正式发布&#xff01; 在这个版本中&#xff0c;我们引入了一系列新的功能和改进&#xff0c;包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外&#xff0c;新版本还进行了多项改进以及 B…

Qt项目:网络1

文章目录 项目&#xff1a;网路项目1&#xff1a;主机信息查询1.1 QHostInfo类和QNetworkInterface类1.2 主机信息查询项目实现 项目2&#xff1a;基于HTTP的网络应用程序2.1 项目中用到的函数详解2.2 主要源码 项目&#xff1a;网路 项目1&#xff1a;主机信息查询 使用QHostI…

【练习——打印每一位数】

打印一个数的每一位 举个例子&#xff1a;我们现在要求打印出123的每一位数字。我们需要去想123%10等于3&#xff0c;就可以把3单独打印出来了&#xff0c;然后再将123/10可以得到12&#xff0c;将12%10就可以打印出2&#xff0c;而我们最后想打印出1&#xff0c;只需要1%10就…

前端路由与后端路由的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

MySQL之Pt-kill工具

工具下载 [rootlocalhost1 bin]# wget percona.com/get/percona-toolkit.tar.gz [rootlocalhost1 bin]# yum install perl-DBI [rootlocalhost1 bin]# yum install perl-DBD-MySQL [rootlocalhost1 bin]# ./pt-kill --help1、每10秒检查一次&#xff0c;发现有 Query 的进程就…

数据隐私安全趋势

在当今社交媒体和开源开发的世界中&#xff0c;共享似乎已成为社会常态。毕竟&#xff0c;我们都被教导分享就是关怀。这不仅适用于个人&#xff0c;也适用于公司&#xff1a;无论是有意在社交媒体帐户和公司网站上&#xff0c;还是无意中通过员工的行为&#xff0c;公司可能会…

【Python笔记-设计模式】命令模式

一、说明 命令模式是一种行为设计模式&#xff0c;旨在对命令的封装&#xff0c;根据不同的请求将方法参数化、延迟请求执行或将其放入队列中&#xff0c;且能实现可撤销操作。 (一) 解决问题 将请求发送者和接受者解耦&#xff0c;请求发送者只需知道如何发送请求&#xff…

FullCalendar日历组件:进行任务增删改,参考gitee例子修改

效果 参考路径 zxj/FullCalendar开发示例 - 码云 - 开源中国 (gitee.com) 代码 主页面&#xff1a;index.php <?php ob_start(); include(includes/session.inc); ?> <!DOCTYPE html> <html><head><title>日程管理</title><meta …

html中的meta 元信息

html中的meta 元信息 1. 配置字符编码 <meta charset"utf-8">2. 针对 IE 浏览器的兼容性配置。 <meta http-equiv"X-UA-Compatible" content"IEedge">3. 针对移动端的配置 <meta name"viewport" content"widt…