Spring boot jar包加密(防止放在客户端反编译)

板栗炖牛肉 · · 1642 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

前言

需求常用但是时间不常有。有些能客户接触到jar包就很尴尬了。不要问为什么尴尬。

  • 混淆?? 测试了下 ProGuard maven 插件。嗯,放弃了。不言弃的朋友可以试试。

  • 加固!! 可以的给钱就行

  • 重点,jar包不给钱加密了---xjar

  • github-xjar-链接

解决方案

  1. 第一步,新建一个maven项目。(不来操作演示了)

  2. 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>
  1. 新建一个类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);
    }
}

  1. 运行,得到如下图
文件夹
  1. 分环境介绍。

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.jarxjar.go

5.cd到目录,操作

# go build xjar.go

6.得到如下文件


image.png

7.运行jar,普通运行

 ./xjar java -jar new.jar
  1. 写成sh
#!/bin/sh
cd /路径
nohup  ./xjar java -jar new.jar > new.out &    //需要日志,二选一(一般都有logger了,不用这个了)
./xjar java -jar new.jar  &    //不需要日志,二选一

9.打成系统服务systemctl这个不讲了,百度,或者我其他文章有

windows

  1. 首先目标系统-windows10 ,嗯没毛病吧

  2. 百度golang windows安装,添加环境,emmm

  3. 操作

# go build xjar.go

4.得到xjar.exe,跟linux差不多操作了

5.cd到目录,然后操作

 xjar.exe java -jar new.jar

Ps

  • 混淆踩了很多坑,发现web jar 果然不适合混淆。

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:板栗炖牛肉

查看原文:Spring boot jar包加密(防止放在客户端反编译)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1642 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传