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

Springboot3.5.6 + jdk21使用第三方xjar加密

我自己尝试打包的环境
jdk21
springboot3.5.6
golang: 1.19.13

大佬的开源仓库地址
https://github.com/kongweiguang/xjar-plus
直接clone下来, 使用idea打开
新建一个测试
在这里插入图片描述
测试类代码:

import io.xjar.XCryptos;
import io.xjar.XGo;
import io.xjar.XKit;
import io.xjar.key.XKey;public class MyTest {public static void main(String[] args) throws Exception {// 加密jar包XCryptos.encryption()//原始jar.from("C:\\Users\\Frk\\Downloads\\xjar-plus-master\\gszy2group-0.0.1-SNAPSHOT.jar")//密码.password("123456")//执行jar参数 最后执行结果是( java 自定义参数 -jar app.jar)//建议加上-XX:+DisableAttachMechanism 不然可以使用agent获取jvm运行时的class信息进行反编译(通过类似arthas的工具实现).jarArgs("-XX:+DisableAttachMechanism --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED")//jdk的zip包地址(需要放到目标机器执行的jdk版本,一般是linux下的jdk),注意:jdk的zip包不能有多层目录,只能是jdk的根目录.jdkZip("C:\\Users\\Frk\\Downloads\\xjar-plus-master\\ms-21.0.8.zip")//需要加密路径.include("cn/beitayun/*").include("/**.yml")//需要排除路径.exclude("/static/**/*")//构建机器上的golang的路径(运行的机器上不需要go环境).goPath("C:\\Users\\Frk\\sdk\\go1.19.13\\bin")//是否打包为linux可执行文件
//                .pkgLinux()//(格式必须是yyyy-MM-dd HH:mm:ss)启动器有效期时间,简单判断时间,如果宿主机修改机器时间就没办法了,推荐网络校验.validStartDate("2025-10-20 00:00:00").validEndDate("2025-10-20 16:25:00")//生成license文件内的code,如果有license文件,// 会校验license中的code和启动器重的code一致,// 否则会认为这个license文件不是这个启动器的,// 不填默认生成uuid// 建议每一个应用一个code.code("654321")//打包后文件存放目标路径.to("C:\\Users\\Frk\\IdeaProjects\\beitayun-g2\\target", "bala.jar");// ------------------------------------------------------------------------------------// 单独生成license文件,只要保证密码和code一致,即可修改启动器的启动参数和有效期XKey key = XKit.key("123456");XGo.license("C:\\Users\\Frk\\IdeaProjects\\beitayun-g2\\target",key,"-Xms512m -Xmx1024m -Dserver.port=8083","654321","2025-10-20 16:20:00","2025-10-20 16:30:00");}
}

一个一个参数解释

第一个from原始jar包路径, 使用绝对地址就好了

password, 就是密码, 这个看自己

jarArgs, 这个不要动大佬的参数

jdkZip, 进入到jdk文件夹路径, 能看到bin路径的这一层, 选择所有文件一起压缩

include, 加密路径

goPath, 这个没啥说的, go语言sdk的位置

validStartDate, 开始生效时间
validEndDate, 失效时间

code, 这个每个应用一个, 用来和后面的license文件关联的

---------------------------------------------------

可以看到代码分成了两段, 开头的一段是对jar包进行加密的设置

后一段是用来生成license文件的

你的jar包设置过期时间到期了

只需要单独运行第二段代码, 生成新的合法license文件

将合法license文件发送给对方, 放到加密后的exe文件同目录就可以

不过这个过期时间是本地事件, 容易被更改

http://www.dtcms.com/a/507742.html

相关文章:

  • [go 面试] 构建高效微服务通信:选择合适的通信方式
  • 推荐营销型网站建设做电影资源网站手机版
  • 厦门网站设计排行网站建设培训费用多少
  • 哪个网站做图文素材多项目投资网
  • Python3编程之面向对象
  • 【AI4S】从直觉到人工智能:药物发现中的小分子表征演变
  • docker compose 2.33版本安装
  • 在线解决window和linux对linux远程问题
  • 公司企业做网站好做吗深圳市网站备案
  • rabbitmq的多交换机(扇出为例)监听实现
  • 做网站那个好做淘宝联盟网站要多少钱
  • 4A 架构(业务架构、数据架构、应用架构、技术架构)在智慧电网中的实战:从边缘 AI 到云边协同的代码级拆解
  • django 做网站wordpress使用七牛防止降权
  • 定制建站方案当当网站建设的目标
  • 阿里云创建交换分区、设置内存监控预警和自动处理内存占用过大进程的脚本
  • 网站建设费用做什么科目思明自助建站软件
  • php网站开发实战教程app和网站开发语言的区别
  • 引领未来交易:达普韦伯全链路Swap交易所系统开发解决方案
  • 2.CUDA编程模型
  • YOLOV4
  • MES系统如何实现生产过程数据采集与管控?
  • 医保局网站建设dw网页设计作品简单
  • 网站如何更换空间wordpress镜像什么意思
  • 使用Yum安装Redis
  • Verilog和FPGA的自学笔记7——流水灯与时序约束(XDC文件的编写)
  • 蜜蜂及飞行昆虫多类别检测数据集VOC+YOLO格式3630张6类别
  • 从零开始:在 TCP 基础上手动搭建 ModBus TCP 协议
  • 台州的网站建设wordpress动漫展主题
  • 外贸假发 网站南京网站设计制作公司排名
  • 【C++闯关笔记】模板的特化