xjar 对Spring-Boot JAR 包加密运行工具

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

猜你喜欢

转载自blog.csdn.net/houxian1103/article/details/109237564