Xjar 介绍
Spring Boot JAR 安全加密运行工具,同时支持的原生JAR。 基于对JAR包内资源的加密以及拓展ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。 功能特性 无需侵入代码,只需要把编译好的JAR包通过工具加密即可。 完全内存解密,杜绝源码以及字节码泄露或反编译。 支持所有JDK内置加解密算法。 可选择需要加解密的字节码或其他资源文件,避免计算资源浪费。
xjar 使用
pom.xml 使用
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>xJarEncrypt</artifactId>
<version>1.0.0</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.github.core-lib/xjar -->
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar</artifactId>
<version>2.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>loadkit</artifactId>
<version>v1.0.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<build>
<plugins>
<!-- 用来创建超级JAR包的Maven shade插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
编写代码对已有spring boot jar 进行加密操作
public class JarEncrypt {
public static void main(String[] args) throws Exception {
// Spring-Boot Jar包加密
String password = args[0];
XKey xKey = XKit.key(password);
XBoot.encrypt(args[1], args[1]+".encrypt", xKey);
System.out.println("Successfully generated encrypted jar");
}
}
使用编译的jar 对目标jar 进行加密
java -cp D:\works\public_service\fileservice\fileservice_test\target\xJarEncrypt-1.0.0.jar JarEncrypt 123456 D:\works\public_service\fileservice\fileservice_test\target\fileservice_test-0.0.1-SNAPSHOT.jar
命令说明:
java -cp java 命令
JarEncrypt jar 中的主类
123456 加密密码。
public_service\fileservice\fileservice_test\target\fileservice_test-0.0.1-SNAPSHOT.jar 要加密的jar