ClassFinal安全加密工具基本使用


官网

https://gitee.com/roseboy/classfinal

简介

ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包以及配置文件,无需修改任何项目代码,
兼容spring-framework;可避免源码泄漏或字节码被反编译。

项目模块说明


    classfinal-core: ClassFinal的核心模块,包含所有加密的代码;
    classfinal-fatjar: ClassFinal打包成独立运行的jar包;
    classfinal-maven-plugin: ClassFinal加密的maven插件;


功能特性


    无需修改原项目代码,只要把编译好的jar/war包用本工具加密即可。
    运行加密项目时,无需求修改tomcat,spring等源代码。
    支持普通jar包、springboot jar包以及普通java web项目编译的war包。
    支持spring framework、swagger等需要在启动过程中扫描注解或生成字节码的框架。
    支持maven插件,添加插件后在打包过程中自动加密。
    支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。
    支持绑定机器,项目加密后只能在特定机器运行。
    支持加密springboot的配置文件。


加密测试


下面的测试我是以JeecgBoot框架后台打包后的jar包来测试的。

加密前的jar名称为:jeecg-boot-module-system-2.2.1.jar

加密后的jar名称为:jeecg-boot-module-system-2.2.1-encrypted.jar

加密命令测试1(加密指定class及配置文件)

java -jar classfinal-fatjar-1.2.1.jar -file jeecg-boot-module-system-2.2.1.jar -libjars jeecg-boot-base-common-2.2.1.jar,jeecg-boot-module-mytest-1.0.0.jar -packages org.jeecg.modules.mytest,org.jeecg.modules.system,org.jeecg.common -cfgfiles application.yml,application-dev.yml,application-prod.yml,application-test.yml -exclude org.jeecg.JeecgApplication -pwd 123456 -Y

加密命令测试2(加密指定class及配置文件,并且绑定机器)

java -jar classfinal-fatjar-1.2.1.jar -file jeecg-boot-module-system-2.2.1.jar -libjars jeecg-boot-base-common-2.2.1.jar,jeecg-boot-module-mytest-1.0.0.jar -packages org.jeecg.modules.mytest,org.jeecg.modules.system,org.jeecg.common -cfgfiles application.yml,application-dev.yml,application-prod.yml,application-test.yml -code FA3082F730D6F788F05FDCEA1AD2EC33D41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E -exclude org.jeecg.JeecgApplication -pwd 123456 -Y


注意:以上命令执行前,需要将classfinal-fatjar-1.2.1.jar和要加密的jeecg-boot-module-system-2.2.1.jar放在同一目录中。

加密命令参数说明

-【参数说明】
-file        加密的jar/war完整路径
-packages    加密的包名(可为空,多个用","分割)
-libjars     jar/war包lib下要加密jar文件名(可为空,多个用","分割)
-cfgfiles    需要加密的配置文件,一般是classes目录下的yml或properties文件(可为空,多个用","分割)
-exclude     排除的类名(可为空,多个用","分割)
-classpath   外部依赖的jar目录,例如/tomcat/lib(可为空,多个用","分割)
-pwd         加密密码,如果是#号,则使用无密码模式加密
-code        机器码,在绑定的机器生成,加密后只可在此机器上运行
-Y           无需确认,不加此参数会提示确认以上信息

加密模式说明

无密码模式


加密时-pwd参数设为#,启动时可不用输入密码; 如果是war包,启动时指定参数 -nopwd,跳过输密码过程。

机器绑定


机器绑定只允许加密的项目在特定的机器上运行;

在需要绑定的机器上执行以下命令,生成机器码:

java -jar classfinal-fatjar-1.2.1.jar -C
加密时用-code指定机器码。机器绑定可同时支持机器码+密码的方式加密。

带密码启动命令


java -javaagent:jeecg-boot-module-system-2.2.1-encrypted.jar="-pwd 123456" -jar jeecg-boot-module-system-2.2.1-encrypted.jar

java -javaagent:jeecg-boot-module-system-2.2.1-encrypted.jar="-pwd 123456" -jar -Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512m jeecg-boot-module-system-2.2.1-encrypted.jar --spring.profiles.active=dev --server.port=8099

java -javaagent:jeecg-boot-module-system-2.2.1-encrypted.jar="-pwd 123456" -jar -Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512m jeecg-boot-module-system-2.2.1-encrypted.jar --spring.profiles.active=prod --server.port=8099

不带密码启动命令

(如果jar加密时设置了密码,则在启动时需要手动输入密码哦!)


java -javaagent:jeecg-boot-module-system-2.2.1-encrypted.jar -jar jeecg-boot-module-system-2.2.1-encrypted.jar

java -javaagent:jeecg-boot-module-system-2.2.1-encrypted.jar -jar -Xms2048m -Xmx2048m -XX:PermSize=512M -XX:MaxPermSize=512m jeecg-boot-module-system-2.2.1-encrypted.jar --spring.profiles.active=prod --server.port=8099


 

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ClassFinal是一款Java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework,可避免源码泄漏或字节码被反编译。 项目模块说明: classfinal-core:ClassFinalde的核心模块,几乎所有加密的代码都在这里; classfinal-fatjar:ClassFinal打包成独立运行的jar包; classfinal-maven-plugin:ClassFinal加密的maven插件; 功能特性: 无需修改原项目代码,只要把编译好的jar/war包用本工具加密即可。 运行加密项目时,无需求修改tomcat,spring等源代码。 支持普通jar包、springboot jar包以及普通java web项目编译的war包。 支持spring framework、swagger等需要在启动过程中扫描注解或生成字节码的框架。 支持maven插件,添加插件后在打包过程中自动加密。 支持加密WEB-INF/lib或BOOT-INF/lib下的依赖jar包。 环境依赖: JDK 1.8 + 本工具使用AES算法加密class文件,密码是保证不被破解的关键,请保存好密码,请勿泄漏。 密码一旦忘记,项目不可启动且无法恢复,请牢记密码。 本工具加密后,原始的class文件并不会完全被加密,只是方法体被清空,保留方法参数、注解等信息,这是为了兼容spring,swagger等扫描注解的框架; 方法体被清空后,反编译者只能看到方法名和注解,看不到方法的具体内容;当classclassloader加载时,真正的方法体会被解密注入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值