场景
最近Java项目要求部署到客户服务器上,但担心泄露源码。要求对正式环境的启动包进行安全性处理,防止客户通过反编译获取源代码。
方案一(不建议使用,不在此详细述说,如需要详细教程可留言)
使用proguard实现代码混淆:
混淆只是把类名、方法名、参数名替换成a、b、c等字母,实际处理逻辑没有改动。
方案二(不建议使用,springboot项目麻烦)
使用JVMTi加密解密:
使用此种加密方式还需要对springboot项目打包做单独处理.
方案三(建议使用)
使用xjar加解密:
#654321:密码,启动时需要;test.jar:你的项目jar文件;test_encrypt.jar:加密后的项目jar文件。
加密:java -cp xjar.jar XjarDemo 654321 test.jar test_encrypt.jar
#654321:加密时的密码
启动:java -jar test_encrypt.jar --xjar.password=654321
亲测有效,如果需要docker容器下启动项目可留言联系。