IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring Boot JAR 安全加密运行工具:XJar快速上手 -> 正文阅读

[Java知识库]Spring Boot JAR 安全加密运行工具:XJar快速上手

一、概述

????? Java的 Jar包中的.class文件可以通过反汇编得到源码。这样应用的安全性就很难得到保证,别人只要得到你的应用,不需花费什么力气,就可以得到源码。

???? 这时候就需要对jar进行加密处理。

???? XJar是一款Spring Boot JAR 安全加密运行工具, 同时支持的原生JAR.
???? 它是基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动, 动态解密运行的方案, 避免源码泄露以及反编译.

XJar GitHub地址


二、XJar快速上手


2.1、jar包加密


2.1.1、引入依赖

<project>
    <!-- 设置 jitpack.io 仓库 -->
    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
    <!-- 添加 XJar 依赖 -->
    <dependencies>
        <dependency>
            <groupId>com.github.core-lib</groupId>
            <artifactId>xjar</artifactId>
            <version>4.0.2</version>
            <!-- <scope>test</scope> -->
        </dependency>
    </dependencies>
</project>

2.1.2、编写加密类

public class JarEncryptio {
    public static void main(String[] args) throws Exception {
        // Spring-Boot Jar包加密
        XCryptos.encryption()
                .from("/path/target/test.jar")
                .use("passwad")
                .exclude("/static/**/*")
                .exclude("/templates/**/*")
                .exclude("/META-INF/resources/**/*")
                .to("/savePath/test-encryption.jar");
        System.out.println("success");
    }
}

以上,运行程序即可获得加密后的jar包。并包含一个xjar.go文件。


2.2、编译xjar.go文件

??? 加密后的jar包不能直接运行了,需要golang对xjar.go文件编译后,方可运行。

??? 编译xjar.go文件需要golang的运行环境
??? 将 xjar.go 在不同的平台进行编译即可得到不同平台的启动器可执行文件, 其中Windows下文件名为 xjar.exe 而Linux下为 xjar
??? 用于编译的机器需要安装 Go 环境, 用于运行的机器则可不必安装 Go 环境

2.2.1、安装Golang环境


2.2.1.1、Mac环境

存放目录:/root/golang

# 下载安装包
wget -c https://golang.google.cn/dl/go1.16.2.darwin-amd64.tar.gz

# 解压
tar -xzvf go1.16.2.darwin-amd64.tar.gz

# 进入目录
cd go

# 编辑~/.bash_profile文件
vim ~/.bash_profile
# 追加如下内容
export GOROOT=/root/golang/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go

# 编辑~/.zshrc文件
vim ~/.zshrc
# 追加如下内容
source ~/.bash_profile

# 使终端对以上配置的环境变量生效
source ~/.zshrc

# 检查是否安装成功
go version

2.2.1.1、Linux环境

存放目录:/root/golang

# 下载安装包
wget -c https://golang.google.cn/dl/go1.14.6.linux-amd64.tar.gz

# 解压
tar -zxvf go1.14.6.linux-amd64.tar.gz

# 进入目录
cd go

# 配置环境变量
vim /etc/profile
# 追加如下配置
export GOROOT=/root/golang/go
export GOPATH=/home/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

# 刷新环境变量
source /etc/profile

# 查看版本(如果不行,检查"追加如下配置"的配置路径是否有误)
go version

2.2.2、安装java环境

这里用于测试,快速粗暴安装

# 查看可安装java版本
yum -y list java*

# 安装
yum install -y java-1.8.0-openjdk-devel.x86_64

# 查看版本
java -version

2.2.3、编译

go build xjar.go

将 xjar.go 在不同的平台进行编译即可得到不同平台的启动器可执行文件, 其中Windows下文件名为 xjar.exe 而Linux下为 xjar


2.3、运行

运行环境只需要有java环境即可
但是务必要保证编译环境与运行环境属于同一种环境(x86机器上编译的不能在arm环境运行)

# linux/mac环境下运行
?

./xjar java -jar test-encryption.jar

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:18:51  更:2022-10-17 12:19:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/19 3:57:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码