本文由 简悦 SimpRead 转码, 原文地址 www.toutiao.com
为了防止源码泄漏,决定对 jar 包进行加密。window : xjar.exe java -jar test.jar。
近期笔者在为客户做私有云的部署。而这个客户有个特点,喜欢破解。为了防止源码泄漏,决定对 jar 包进行加密。
Xjar 基于对 JAR 包内资源的加密以及拓展 ClassLoader 来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。它不需要侵入代码,只需要把编译好的 JAR 包通过工具加密即可。
1
2
3
4
5
6
7
8
9
10
11
|
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.20</version>
</dependency>
|
1
2
3
4
5
6
|
<repositories>
<repository>
<id>jitpack</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package com.test;
import io.xjar.XCryptos;
public class Test {
public static void main(String[] args) throws Exception {
encrypt();
}
public static void encrypt() throws Exception {
XCryptos.encryption()
// 项目生成的jar
.from("D:\\project\\AIP\\aip-admin\\target\\source.jar")
// 加密的密码
.use("testaa1111122222")
.include("/**/*.class")
.include("/**/*.xml")
.include("/**/*.yml")
.to("D:\\project\\AIP\\temp\\test.jar");
}
}
|
此时会在指定路径生成 test.jar 以及 xjar.go 文件
window : xjar.exe java -jar test.jar (如果报错,查看报错内容并更正)
linux: nohup ./xjar java -jar test.jar
至此,便完成对 spring boot jar 包的加密了