java 代码加壳加密工具 jar-protect

开源地址

https://gitee.com/chejiangyi/jar-protect

介绍

java 本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar 包很容易被反编译和破解。 受 classfinal(已停止维护)设计启发,针对 springboot 日常项目开发,重新编写安全可靠的 jar 包加壳加密技术,用于保护软件版权。

使用说明

使用 jdk8 编译,支持 jdk8+版本。

目前支持 springboot 打包的 jar 文件(其他未测)

目前支持 class 文件加密,支持 properties,yml,xml 等配置文件加密加密设计

加密

加密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED

#fromJar 待加密的jar包的地址,支持相对路径#excludeClass 排除(不加密)类文件,支持前后*进行模糊匹配#includeJar 包含(需要加密)jar包,支持前后*进行模糊匹配#includeConfig 包含(需要加密)文件,如.xml,.properties,.yml等配置文件,支持前后*进行模糊匹配java -jar jar-project.jar --fromJar "c:\\tool\\a.jar" --excludeClass "*EurekaApplication*" --includeJar "lmc-*" --includeConfig "*.properties"

加密配置

文件名: jar-project.security.properties

#过期时间,为空则不限制过期时间(默认到9999-01-01)expireTime=2023-07-01#加密密码,为空则随机生成动态密码password=#加密解密文件地址(加密java代码源码),为空则使用自带des加密myEncryptCodeFile=加密.java#加密方写入的版权信息声明,为空则无myVersionInfo=请正规渠道获得版本授权文件,严禁进行反编译修改或破解,一经发现会追溯法律责任!

加密.java 模板

package com.free.bsf.jarprotect.core.encrypt;import com.free.bsf.jarprotect.core.base.BsfException;import com.free.bsf.jarprotect.core.base.Context;import com.free.bsf.jarprotect.core.encrypt.IEncrypt;
/*MyEncrypt类名不能更改,注意引用相应的包(仅支持jdk自身的类库,不能使用第三方类库)*/public class MyEncrypt implements IEncrypt {    @Override    public byte[] e(byte[] d) {        try {           //Context.Default.getPassword()           /*加密逻辑代码*/        }catch (Exception e){            throw new BsfException(e);        }    }
    @Override    public byte[] d(byte[] d) {        try {            //Context.Default.getPassword()            /*解密逻辑代码*/        }catch (Exception e){            throw new BsfException(e);        }    }}

解密

解密命令

jdk17 需要加--add-opens java.base/java.lang=ALL-UNNAMED

java -javaagent:encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar -jar encrypt-lmc-demo-provider-1.0-SNAPSHOT.jar

解密配置

一般为加密 jar 包后自动生成,文件名为{jar 包名}.security.properties,解密 jar 需要配套此解密配置文件

#加密密码password=#解密秘钥代码myDecryptCode=

by 车江毅

2023-8-2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值