暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

Spring Boot JAR 安全加密运行工具:XJar快速上手

一叶扁舟 2022-03-29
7773

image.png

一、概述

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包不能直接运行了,需要golangxjar.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
复制
最后修改时间:2022-03-31 10:03:23
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

墨天轮福利君
暂无图片
3年前
评论
暂无图片 0
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收! ❤️我们还会实时派发您的流量收益。
3年前
暂无图片 点赞
评论