SpringBoot中使用XJar进行JAR安全加密运行同时支持原生JAR

SpringBoot中使用XJar进行JAR安全加密运行同时支持原生JAR


一、简介

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

功能特性
无代码侵入, 只需要把编译好的JAR包通过工具加密即可.
完全内存解密, 降低源码以及字节码泄露或反编译的风险.
支持所有JDK内置加解密算法.
可选择需要加解密的字节码或其他资源文件.
支持Maven插件, 加密更加便捷.
动态生成Go启动器, 保护密码不泄露.

官网:
GitHub: https://github.com/core-lib/xjar
Gitee: https://gitee.com/mirrors/XJar

二、使用

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>

必须添加 https://jitpack.io Maven仓库.
如果使用 JUnit 测试类来运行加密可以将 XJar 依赖的 scope 设置为 test.

2.加密源码

package cn.gzsendi.modules.liutests;

import org.junit.Test;

import io.xjar.XCryptos;

/**
 * Xjar
 * 参考文档:https://gitee.com/mirrors/XJar
 * @author liujh
 */
public class XjarTest {
	
	@Test
	public void test() throws Exception{
		
	    XCryptos.encryption()
        .from("D:/temp/springbootLiuTest.jar")//指定待加密JAR包路径
        .use("123456")//指定加密密码
        //.include("/io/xjar/**/*.class")//指定要加密的资源相对于classpath的正则路径表达式
        //.include("/mapper/**/*Mapper.xml")//指定要加密的资源相对于classpath的正则路径表达式
        //.exclude("/static/**/*")//指定不加密的资源相对于classpath的正则路径表达式
        .exclude("/*.yml")//指定不加密的资源相对于classpath的正则路径表达式
        .exclude("/*.xml")
        .to("D:/temp/springbootLiuTestEncode.jar");
	}

}

注:include 和 exclude 同时使用时即加密在include的范围内且排除了exclude的资源.

3.Go环境准备

Go环境安装文件下载地址:https://go.dev/dl/

#下载Go安装文件与解压
wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
tar zxvf go1.12.4.linux-amd64.tar.gz  -C /usr/local
 
#编辑/etc/profile文件添加如下:
#go setting
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=$PATH:$GOROOT/bin
source /etc/profile 生效

#验证go环境准备:
go version

4.编译脚本

go build xjar.go

通过步骤2加密成功后XJar会在输出的JAR包同目录下生成一个名为 xjar.go 的的Go启动器源码文件.
将 xjar.go 在不同的平台进行编译即可得到不同平台的启动器可执行文件, 其中Windows下文件名为 xjar.exe 而Linux下为 xjar.
由于启动器自带JAR包防篡改校验, 故启动器无法通用, 即便密码相同也不行.

5.启动运行

/path/to/xjar /path/to/java [OPTIONS] -jar /path/to/encrypted.jar [ARGS]
/path/to/xjar /path/to/javaw [OPTIONS] -jar /path/to/encrypted.jar [ARGS]
nohup /path/to/xjar /path/to/java [OPTIONS] -jar /path/to/encrypted.jar [ARGS]

#示例:
./xjar java -jar springbootLiuTestEncode.jar

仅支持通过 -jar 方式启动, 不支持-cp或-classpath的方式.
-jar 后面必须紧跟着启动的加密jar文件路径

其他问题及内容参考:https://gitee.com/mirrors/XJar

以上介绍即为XJar的使用,希望对你有帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值