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包进行加密时候的密码是要保持一致的。

相关推荐
步行cgn3 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风3 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
明月_清风4 小时前
AI 越来越强,程序员真正的价值到底是什么?
人工智能·后端
aramae4 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路4 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
码事漫谈5 小时前
别再跟AI说“请”了,它根本不 care——但有个东西它超在意
后端
郑州光合科技余经理7 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
+VX:Fegn08957 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
IT_陈寒8 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
需要8268 小时前
MySQL 索引 B+ 树与“查询为什么变慢了
java·spring boot·spring·spring cloud·tomcat