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

news/2025/3/18 9:37:41/文章来源:https://www.cnblogs.com/jamin/p/18778278

Gitee: https://gitee.com/roseboy/classfinal

 

功能特性

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

加密

执行以下命令

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

结果: 生成 yourpaoject-encrypted.jar,这个就是加密后的jar文件;加密后的文件不可直接执行,需要配置javaagent。

注: 以上示例是直接用参数执行,也可以直接执行 java -jar classfinal-fatjar.jar按照步骤提示输入信息完成加密。

 

 

启动加密后的jar

加密后的项目需要设置javaagent来启动,项目在启动过程中解密class,完全内存解密,不留下任何解密后的文件。

解密功能已经自动加入到 yourpaoject-encrypted.jar中,所以启动时-javaagent与-jar相同,不需要额外的jar包。

启动jar项目执行以下命令:

java -javaagent:yourpaoject-encrypted.jar="-pwd 0000000" -jar yourpaoject-encrypted.jar//参数说明
// -pwd      加密项目的密码  
// -pwdname  环境变量中密码的名字
 window下要用双引号

或者不加pwd参数直接启动,启动后在控制台里输入密码,推荐使用这种方式:

java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900793.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

库存乱、找货难?仓库管理三定、五距、七方法教会你!

做仓库管理,最怕的就是库存乱、找货难。货品东一堆、西一堆,明明系统里显示有货,结果一翻库房,连个影子都找不到; 好不容易找到了,又发现不是要的型号。 拣货员天天加班,客户催单催得急,仓库主管被骂得怀疑人生。问题到底出在哪? 其实,80%的仓库管理混乱,都是因为缺…

二维材料芯突破,,纳米孔测序有望梦想成真-中科院物理所-芯晨微纳(河南)

中科院物理所成功研制出厚度仅0.1纳米(1埃米)的单原子层二维金属(如铋、锡),横向尺寸达毫米级,且稳定性超1年! 同样是原子的平面展开,石墨烯是一种物质,而“二维金属”是一类物质,其意义远超石墨烯。 在超微型低功耗晶体管领域,二维金属材料能够凭借其独特的原子结构…

记录一个蓝桥杯串口2的问题

去年整串口的时候也是用的定时器2来当波特率发生器,但是死活不能用,所以去年是用定时器1来当波特率发生器,所以后面国赛的时候吃屎了。 今天在练习第十届决赛的时候又遇到了这个问题,由于用的是新模板,所以以为是模板里sprintf的问题,但经过排查不是。经过很久的排查发现…

在线记事本 | AI 设计

AI 设计在线记事本,可以临时使用。前情概要 以前用过的在线记事本,都是将对应的网址嵌入本博客中来使用,20250318,心血来潮给 DeepSeek 指令发送指令,“给我设计一套在线记事本的代码,要求能嵌入博客中,HTML,CSS,JS”,就这样简单的一句话,不到 2 分钟,一套完整的网页…

邮箱服务 ---nodemailer 、js-yaml

使用nodejs 发送邮件需要用到两个库npm install js-yaml npm install nodemailer YAML(YAML Aint Markup Language)是一种人类可读的数据序列化格式,用于表示数据结构。它通常用于配置文件、数据交换和设置等场景。 主要特点:简洁易读:YAML 使用缩进表示层级关系,不需要…

从常见问题到核心需求,探讨文件同步软件哪个好用?

在企业日常运营中,文件同步是一项至关重要的任务,尤其是在多服务器、多分支机构或分布式系统中。选择合适的文件同步软件不仅能提高工作效率,还能确保数据的安全性和一致性。文件同步软件哪个好用,本文将探讨如何选择高效可靠的文件同步软件,并推荐一款值得信赖的解决方案…

130道基础OJ编程题之: 89~107

130道基础OJ编程题之: 89~107 @目录130道基础OJ编程题之: 89~10789. BC101 班级成绩输入输出99. BC102 矩阵元素定位100. BC103 序列重组矩阵101. BC104 最高身高102. BC105 矩阵相等判定103. BC106 上三角矩阵判定104. BC107 矩阵转置105. BC108 矩阵交换106. BC109 杨辉三角1…

【2025年企业必看】跨网文件传输难题如何破解?适合IT运维的解决方案

一、哪些行业会面临跨网文件传输场景 跨网文件传输的需求广泛存在于多个行业和企业机构中,以下是一些典型的行业和机构: 1、金融行业 银行:内部不同网域和部门之间、不同分支机构之间需要共享客户数据、交易记录等。 保险公司:总部与各地分公司之间需要传输保单、理赔数据等…

20250318

1. 20号胶 准备迎来建仓机会

UML之泛化用例

UML用例可以泛化,泛化可简化模型、避免重复、易于扩展。通过抽象用例实现复用和模块化。讨论参与者及用例之间的泛化关系,指出不使用泛化可能导致模型复杂和重复工作的问题。在UML中,参与者和用例都可以被泛化或特化,它们在泛化或特化时遵循面向对象中泛化与特化的特性。 用…

01. Linux系统编程入门

入门系统编程,首先理解一下基本的系统调用和库函数的区别 一切皆文件的思想,都是通过文件描述符来进行操作 strace命令文件读写系统调用 #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>int main (void) {in…