使用xjar 对Spring-Boot jar包加密

       最近公司有个项目涉及到,部署到待签约合作的客户服务器上,因为考虑到demo的代码保护,所以对springboot打包生成的jar包进行加密。从网上找了很多资料,有些是利用 ProGuard进行代码混淆,但这个方法我尝试过很多次,也花了一点时间下去,没什么效果,可能我没找对方法吧。

       今天记录下利用xjar的方法进行jar加密

   1、maven添加两个包


    com.github.core-lib
    xjar
    v2.0.6



   com.github.core-lib
   loadkit
   v1.0.0
 


    
    
        
            jitpack.io
            https://jitpack.io
        
    

使用xjar 对Spring-Boot jar包加密_第1张图片

     但是如果使用idea的pom文件来下载上面两个依赖包,会一直不能成功下载,所以使用下面方法:

   1.1、打开maven的远程仓库下载: https://mvnrepository.com/artifact/com.github.core-lib/xjar/v2.0.6 使用xjar 对Spring-Boot jar包加密_第2张图片

  这里接上图步骤,下面一定要定我图中圈起来的,否则会在后面导入包的时候找不到依赖(亲测)

 使用xjar 对Spring-Boot jar包加密_第3张图片

    1.2、下载另外一个:https://mvnrepository.com/artifact/com.github.core-lib/loadkit/v1.0.0

    1.3 、上面两个包下载到本地之后,启动cmd,执行下面两段命令(默认我们都有配置maven的环境变量),注意下面命令中的文件路劲改成自己的下载的对应路劲

     

mvn install:install-file -Dfile=F:\GuGeDonwLoad\xjar-v2.0.6.jar  -DgroupId=com.github.core-lib -DartifactId=xjar -Dversion=v2.0.6 -Dpackaging=jar
mvn install:install-file -Dfile=F:\GuGeDonwLoad\loadkit-v1.0.0.jar   -DgroupId=com.github.core-lib -DartifactId=loadkit -Dversion=v1.0.0 -Dpackaging=jar

    贴出一段执行的效果,已经把对应的jar包通过mvn下载到默认的仓库路劲了,如果我们idea-maven仓库下载路劲在别的目录,可以打开刚编译过的目录下,拷贝至自定义的目录下。这时pom文件会自动刷新,也就不会爆红了。

使用xjar 对Spring-Boot jar包加密_第4张图片

        1.4、在工程下随便创建一个类,加入下面的main方法,运行结束后会生成对应的加密jar包,然而你会发现加密后的jar包会比没有加密的大一倍,哈哈,我也不知道为啥。


import io.xjar.XConstants;
import io.xjar.XKit;
import io.xjar.boot.XBoot;
import io.xjar.key.XKey;
/**
 * @Author zzl
 * @create 2020/5/22 0022 10:23
 */
public class Test {
    public static void main(String[] args) {
        try {
            // Spring-Boot Jar包加密
            String password = "8888";
            XKey xKey = XKit.key(password);
            //参数1是我们打包的文件目录和名称,参数2是加密后的文件路径和名称,参数3是密码
            XBoot.encrypt("E:\\GIT\\recess-manage-server\\target\\manage-server-1.0.0.jar",
                    "E:\\GIT\\recess-manage-server\\target\\manage-server-2-1.0.0-.jar", xKey);
            System.out.println("Successfully generated encrypted jar");
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

 

1.5、windows启动或者当前窗口启动方式:cmd 到加密的jar下,启动jia包(java -jar xxxxxxx.jar),会提示输入密码,成功则启动,

使用xjar 对Spring-Boot jar包加密_第5张图片

 可能在启动加密后的jar会提示:Exception in thread "main" java.lang.ClassNotFoundException:,在pom加入下面代码,对应mainClass写自己的。

使用xjar 对Spring-Boot jar包加密_第6张图片

你也可以使用 jd-gui.exe来测试是否能查看jar包的代码,如下:

使用xjar 对Spring-Boot jar包加密_第7张图片

       1.6、linux后台启动,首先利用ieda创建一个properties文件,写入密码。然后放置到linux的某个目录下,运行即可

使用xjar 对Spring-Boot jar包加密_第8张图片

nohup java -jar xxx-1.0.1.jar --xjar.keyfile=/usr/local/project/xjar.key.properties >logs/recess.log 2>&1 &

    以上就是我个人总结的xjar加密jar的方式,可能总结的不是很到位,排版也比较差,请多多包涵哈

参考:https://msd.misuland.com/pd/4146263639743012462

你可能感兴趣的:(java)