Springboot项目jar加密

部署的程序进行加密,防止第三方非法拷贝走项目进行二次开发或部署。我们知道java代码编译后生成的以.class结尾的字节码文件或者.jar/.war结尾的可执行文件都是可以反编译生成.java文件的,虽然反编译后生成的.java文件和原本的.java文件有些微差别,但这也可能有一定的安全隐患。

ClassFinal的组件比较好用。下面具体介绍下该组件的使用步骤:

1、下载jar包

https://repo1.maven.org/maven2/net/roseboy/classfinal-fatjar/1.2.1/classfinal-fatjar-1.2.1.jar

2、生成机器码

java -jar classfinal-fatjar-1.2.1.jar -C

这个指令执行完成后会生成一个code字符串,使用该字符串对指定jar包在指定机器上进行加密后,加密后的jar包只能在指定机器上运行,这样可以避免jar包被拷贝到其它服务器上运行。

3、对jar包进行加密

java -jar classfinal-fatjar-1.2.1.jar -file demo.jar -packages com.company.demo -cfgfiles application.yml -pwd xxxxxx -code XXXXXXXX27712E4846077E8FDD41D8DFADS98ECF8427ED41D8CD98FSXXXXXX7E --Y

这里面的-file demo.jar就指定了我们的应用程序的jar包,这里面的-packages com.company.demo就指定了要加密的包下面的代码,-cfgfiles application.yml就指定了要进行隐藏的配置文件,-code就是上文中我们生成的机器码,执行完这条指令后就会生成一个加密后的jar包,该jar包反编译后只能看到代码里面的方法名,具体的实现无法看到,配置文件中的内容也是空的。

4、运行加密后的jar包文件

nohup java -javaagent:demo-encrypted.jar="-pwd xxxxxx" -jar demo-encrypted.jar &

注意这里的-pwd xxxxxx和步骤3中对jar包进行加密时候的密码是要保持一致的。

相关推荐
苹果醋32 小时前
前端面试之九阴真经
java·运维·spring boot·mysql·nginx
哎呦没2 小时前
Spring Boot OA:企业办公自动化的高效路径
java·spring boot·后端
真心喜欢你吖2 小时前
Spring Boot与MyBatis-Plus的高效集成
java·spring boot·后端·spring·mybatis
2401_857636392 小时前
实验室管理技术革新:Spring Boot系统
数据库·spring boot·后端
2401_857600952 小时前
实验室管理流程优化:Spring Boot技术实践
spring boot·后端·mfc
2402_857589362 小时前
企业办公自动化:Spring Boot OA管理系统开发与实践
java·spring boot·后端
message丶小和尚3 小时前
SpringBoot升级全纪录之项目启动
java·spring boot·mybatis
恬淡虚无真气从之3 小时前
go interface(接口)使用
开发语言·后端·golang
程序猿毕设源码分享网3 小时前
基于springboot停车场管理系统源码和论文
数据库·spring boot·后端
程序员学姐4 小时前
基于SpringBoot+Vue的高校社团管理系统
java·开发语言·vue.js·spring boot·后端·mysql·spring