因为公司在项目开发完后会部署到客户的服务器,考虑到项目的安全性便想对class文件进行加密,防止客户反编译,经过查询资料和测试有以下几种方法可行
1.proguard: 代码混淆,主要是对代码的类名,方法名,变量名进行混淆,混淆后的名字为a、b、c、d....,
proguard不能对class进行加密,还是可以通过反编译获取到代码,proguard只是对代码进行混淆,增加代码
的阅读理解难度 (https://www.guardsquare.com/en/products/proguard/manual/usage)
2.jfinalQ-encrypt: 加密class文件,防止反编译,可自定义加密解密算法,支持tomcat部署,
非spring框架。 (http://uikoo9.com/book/chapterDetail/36)
3.Xjar: Spring Boot JAR 安全加密运行工具,同时支持的原生JAR。基于对JAR包内资源的加密以及拓展
ClassLoader来构建的一套程序加密启动,动态解密运行的方案,避免源码泄露或反编译。
(https://github.com/core-lib/xjar)
具体详情可以通过官网的地址链接进行了解