前言
需求常用但是时间不常有。有些能客户接触到jar包就很尴尬了。不要问为什么尴尬。
混淆?? 测试了下 ProGuard maven 插件。嗯,放弃了。不言弃的朋友可以试试。
加固!! 可以的给钱就行
重点,jar包不给钱加密了---xjar
解决方案
第一步,新建一个maven项目。(不来操作演示了)
pom添加内容如下,缺一不可不要问为什么,看github地址介绍
<dependencies>
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar</artifactId>
<version>4.0.2</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
- 新建一个类
XJarController
随意
public class XJarController {
//文件地址
private static final String inPath = "D:\\project\\spring boot\\xmlProject\\xmlSpring\\target\\z-0.0.1-SNAPSHOT.jar";
//输出地址
private static final String outPath = "C:\\Users\\klzy\\Desktop\\outPath\\new.jar";
//加密秘钥
private static final String secret = "123456";
public static void main(String[] args) throws Exception {
hanlderEncryptionJar();
System.out.println("完成输出");
}
/**
* 加密jar
*
* @throws Exception
*/
private static void hanlderEncryptionJar() throws Exception {
XCryptos.encryption()
.from(inPath)
.use(secret)
.include("/**.class")
.include("/**/*.xml")
.to(outPath);
}
}
- 运行,得到如下图
- 分环境介绍。
Linux环境
1.首先目标系统-阿里镜像 Centos8.2 不重要 有yum就行,主要环境是golang俗称go
2.上操作
# yum list | gep golang // 没有的就要自己搞repo或者直接wget安装吧 --- golang.x86_64
# yum install -y golang
3.版本确认,检查
# go version
go version go1.14.12 linux/amd64 //我的是
4.把文件传到linux上,注意需要两个文件!重点别漏了new.jar
和xjar.go
5.cd到目录,操作
# go build xjar.go
6.得到如下文件
7.运行jar,普通运行
./xjar java -jar new.jar
- 写成sh
#!/bin/sh
cd /路径
nohup ./xjar java -jar new.jar > new.out & //需要日志,二选一(一般都有logger了,不用这个了)
./xjar java -jar new.jar & //不需要日志,二选一
9.打成系统服务systemctl这个不讲了,百度,或者我其他文章有
windows
首先目标系统-windows10 ,嗯没毛病吧
百度golang windows安装,添加环境,emmm
操作
# go build xjar.go
4.得到xjar.exe,跟linux差不多操作了
5.cd到目录,然后操作
xjar.exe java -jar new.jar
Ps
- 混淆踩了很多坑,发现web jar 果然不适合混淆。
有疑问加站长微信联系(非本文作者)