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

相关推荐
jack_yin7 分钟前
Telegram DeepSeek Bot 管理平台 发布啦!
后端
小码编匠13 分钟前
C# 上位机开发怎么学?给自动化工程师的建议
后端·c#·.net
库森学长15 分钟前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
转转技术团队16 分钟前
二奢仓店的静默打印代理实现
java·后端
蓝易云16 分钟前
CentOS 7上安装X virtual framebuffer (Xvfb) 的步骤以及如何解决无X服务器的问题
前端·后端·centos
上上迁1 小时前
分布式生成 ID 策略的演进和最佳实践,含springBoot 实现(Java版本)
java·spring boot·分布式
秋千码途1 小时前
小架构step系列07:查找日志配置文件
spring boot·后端·架构
蓝倾1 小时前
京东批量获取商品SKU操作指南
前端·后端·api
开心就好20252 小时前
WebView远程调试全景指南:实战对比主流工具优劣与适配场景
后端
用户21411832636022 小时前
AI 一键搞定!中医药科普短视频制作全流程
后端