java + xjar + proguard双重防护代码反编译风险
java + xjar + proguard 反编译防护
为什么要xjar + progurad呢? 前因:打包应用程序部署到客户机,担心代码逻辑或者代码泄露等问题,所以需要把部署包加密或者混淆。xjar是一款对jar进行加密的框架应用,proguard是一款代码逻辑混淆框架,2者互相配合对你的应用进行防护。
导入xjar
GitHub: https://github.com/core-lib/xjar
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.core-lib</groupId>
<artifactId>xjar</artifactId>
<version>v2.0.6</version>
</dependency>
配置proguard
这里可以查看我的另一篇文章
混淆 proguard 进行程序代码混淆配置
配置xjar
// Spring-Boot Jar包加密
String password = "xjar加密的密码";
XKey xKey = XKit.key(password);
XBoot.encrypt("要加密的jar路径", "输出加密后的jar路径", xKey,XConstants.MODE_DANGER);
System.out.println("Successfully generated encrypted jar");
Xjar XConstants 配置说明
XConstants.MODE_DANGER 高危险模式(不需要输入密码即可启动!!!!)
XConstants.MODE_NORMAL 密码模式
密码模式下可指定xjar.key文件来启动
xjar.key文件
password:123456
hold:false //读取文件后启动成功后,是否保留文件 true保存 false立即删除
命令行启动指定参数
java -jar -xjar.keyfile=xjar.key xxx.jar
java -jar xxx.jar (不指定key的情况下,启动时会让你输入密码才能启动!!!)
效果:
这样开发的客户包就不怕被人反编译copy走了。如果需要在安全可以把xjar密码模式运行起来,启动需要输入pasword等措施增加程序安全性
添加关注获取用例!!回复 “xjar-demo”