java 本身是开放性极强的语言,代码也容易被反编译,没有语言层面的一些常规保护机制,jar包很容易被反编译和破解。使用jar-protect项目可以保护
1、加密:
1)将jar-project.jar和jar-project.security.properties文件放入到项目打好包的target目录下,如图所示
![](https://img-blog.csdnimg.cn/img_convert/da3c2856118303a7dbea935e8d60c4a9.png)
2)修改jar-project.security.properties文件:
#过期时间,为空则不限制过期时间(默认到9999-01-01)
expireTime=2025-01-01
#加密密码,为空则随机生成动态密码
password=
#加密解密文件地址(加密java代码源码),为空则使用自带des加密
myEncryptCodeFile=
#加密方写入的版权信息声明,为空则无
myVersionInfo=请正规渠道获得版本授权文件,严禁进行反编译修改或破解,一经发现会追溯法律责任!
3)然后使用如下命令,对已经编译好的jar包进行加密:
java -jar jar-project.jar --fromJar "D:\项目名称\target\service_zhuyuan-1.0-SNAPSHOT.jar" --excludeClass "*ServiceZhuyuanApplication*" --includeJar "service_zhuyuan-*" --includeConfig "*.properties"
4)当输出如下提示下,说明jar包已经加密成功了!
![](https://img-blog.csdnimg.cn/img_convert/ab75f19f52b98a752f9708f194771752.png)
![](https://img-blog.csdnimg.cn/img_convert/1eb1e602d1f3c1c888733ceb4aadddee.png)
5)这是加密后的jar包和反编译后的代码
![](https://img-blog.csdnimg.cn/img_convert/db27969c4868f3999e75fcff4c296054.png)
6)执行java -jar命令,会发现报如下的错误,无法执行:
![](https://img-blog.csdnimg.cn/img_convert/76a496e5036d88dde46465f2070aa8a8.png)
所以得使用以下步骤进行运行解密
2、解密:
1)将加密后的jar和配置文件一同上传到服务器上,请注意,一定要在用一个文件夹下,如图:
![](https://img-blog.csdnimg.cn/img_convert/1541534a53983af2c7d6d2ce569cf085.png)
2)在部署文件夹下,使用如下命令,运行加密的jar包(必须使用此命令,否则启动报错!)
java -javaagent:encrypt-service_gateway-1.0-SNAPSHOT.jar -jar encrypt-service_gateway-1.0-SNAPSHOT.jar
3)发现可以正常运行了:
![](https://img-blog.csdnimg.cn/img_convert/f12466682bbb4ccb5cb76397b9372a9a.png)
至此,jar包已经解密了,可以正常使用了