jar包加密( ClassFinal)
1:源码地址
参考地址:https://gitee.com/roseboy/classfinal
2:打包
可以选择拉下源码后,本地直接package一下,把加密的这个jar包先打好。自己研究的话 也可以不用打包,直接找到启动类,启动也是没问题的。
3:启动
启动后根据提示写入参数,但是在此过程中,加密包所在的地址中,不要包含中文!
启动加密jar包:java -jar classfinal-fatjar-1.2.1.jar
在目标jar目录下会生成一个新的jar
如果需要指定机器的话,执行如下命令:则会生成一串机器码
java -jar classfinal-fatjar-1.2.1.jar -C
4:注意:
启动方式1:
如果启动方式采用下面这句的话,可能会无法启动!
java -javaagent:tool-3.4.1-encrypted.jar='-pwd 123' -jar tool-3.4.1-encrypted.jar
启动后报错:无法加载主类!如果原jar包是可以启动的,那跟项目关系可能不大,换一种启动方式
启动方式2:
命令:
java -javaagent:jar包名 -jar jar包名
log日志相关的xml文件加密后,也可能会造成启动失败!
5:插件形式
插件是classfinal-maven-plugin项目
<plugin> <groupId>net.roseboy</groupId> <artifactId>classfinal-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <password>123456</password> <!--需要加密的包前缀--> <packages>com.test</packages> <!--排除的类名--> <excludes>com.test.trigger.Application.java</excludes> <!--加密的配置文件--> <cfgfiles>application.yml,application-dev.yml,application-test.yml</cfgfiles> <!--机器码--> <code>机器码</code> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>classFinal</goal> </goals> </execution> </executions> </plugin>
打包完,会生成一个encrypted结尾的jar,启动命令跟上面是一样的