天津网站建设noajt,网站一般怎么维护,丰县微网站开发,wordpress短代码按钮Jar包加密工具 ClassFinal介绍环境依赖使用说明下载加密命令行示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互输入参考资料介绍
ClassFinal 是一款 java class 文件安全加密工具#xff0c;支持直接加密jar包…
Jar包加密工具 ClassFinal介绍环境依赖使用说明下载加密命令行示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互输入参考资料介绍
ClassFinal 是一款 java class 文件安全加密工具支持直接加密jar包或war包无需修改任何项目代码兼容spring-framework可避免源码泄漏或字节码被反编译。 加密后原始的class文件中方法体被清空当class被classloader加载时真正的方法体会被解密注入。 为兼容springswagger等扫描注解的框架故而保留了方法参数、注解等信息 反编译者只能看到方法名和注解
环境依赖
JDK 1.8
使用说明
下载
点此下载
加密
命令行
执行以下命令
java -jar classfinal-fatjar.jar -file jerry.jar -libjars a.jar,b.jar -packages com.jerry1,com.jerry2 -exclude com.jerry.Main -pwd 123456 -Y参数说明
-file 加密的jar/war完整路径
-packages 加密的包名(可为空,多个用,分割)
-libjars jar/war包lib下要加密jar文件名(可为空,多个用,分割)
-cfgfiles 需要加密的配置文件一般是classes目录下的yml或properties文件(可为空,多个用,分割)
-exclude 排除的类名(可为空,多个用,分割)
-classpath 外部依赖的jar目录例如/tomcat/lib(可为空,多个用,分割)
-pwd 加密密码如果是#号则使用无密码模式加密
-code 机器码在绑定的机器生成加密后只可在此机器上运行
-Y 无需确认不加此参数会提示确认以上信息结果: 生成加密后的jar文件 jerry-encrypted.jar。执行时需带 javaagent 参数。 注: 也可以直接执行 java -jar classfinal-fatjar.jar 以交互式操作。 示例
我的jar包jerry.jar密码123456
java -jar classfinal-fatjar-1.2.1.jar -file jerry.jar -packages com.jerry -pwd 123456 -YJava Class Encryption Tool v1.2.1 by Mr.K 加密信息如下:
-------------------------
1. jar/war路径: jerry.jar
2. lib下的jar:
3. 包名前缀: com.jerry
4. 排除的类名:
5. 加密配置文件:
6. ClassPath:
7. 密码: 123456
8. 机器码:
-------------------------处理中...
加密完成请牢记密码
jerry-encrypted.jarmaven插件方式
在要加密的项目pom.xml中加入以下插件配置,目前最新版本是1.2.1。
plugin!-- https://gitee.com/roseboy/classfinal --groupIdnet.roseboy/groupIdartifactIdclassfinal-maven-plugin/artifactIdversion${classfinal.version}/versionconfigurationpassword000000/password!--加密打包之后pom.xml会被删除不用担心在jar包里找到此密码--packagescom.yourpackage,com.yourpackage2/packagescfgfilesapplication.yml/cfgfilesexcludesorg.spring/excludeslibjarsa.jar,b.jar/libjars/configurationexecutionsexecutionphasepackage/phasegoalsgoalclassFinal/goal/goals/execution/executions
/plugin运行mvn package时会在target下自动加密生成yourpaoject-encrypted.jar。 maven 插件的参数名称与直接运行的参数相同请参考上节的参数说明。
无密码模式
加密时-pwd参数设为#启动时可不用输入密码如果是war包启动时指定参数 -nopwd跳过输密码过程。
机器绑定
机器绑定只允许加密的项目在特定的机器上运行 加密时用 -code 指定机器码。机器绑定可同时支持机器码密码的方式加密。 在需要绑定的机器上执行以下命令生成机器码
java -jar classfinal-fatjar.jar -C启动加密后的jar
加密后的项目需要设置 javaagent来启动项目在启动过程中解密class完全内存解密不留下任何解密后的文件。
解密功能已经自动加入到 yourpaoject-encrypted.jar 中所以启动时 -javaagent 与 -jar 相同不需要额外的jar包。
密码读取顺序 参数获取 环境变量获取 密码文件获取 控制台输入 GUI输入 退出
启动参数给密码
启动jar项目执行以下命令注意如果是win系统 -pwd 0000000 这里要用双引号。
java -javaagent:jerry-encrypted.jar-pwd 0000000 -jar jerry-encrypted.jar//参数说明
// -pwd 加密项目的密码
// -pwdname 环境变量中密码的名字不加密码参数直接启动
1. 密码文件获取
java -javaagent:yourpaoject-encrypted.jar -jar yourpaoject-encrypted.jar不加 pwd 参数直接启动优先从密码文件读取。 在同级目录下的classfinal.txt或jerry-encrypted.classfinal.txt中写入密码。
直接给密码classfinal.txt
123456参数化配置启动后删除classfinal.txt
--pwd 123456 --del yes这里的del只要不给false或no都会删除。
项目读取到密码后会清空此文件。
2. 交互输入
没有找到 密码文件 就会进入交互输入模式先控制台输入还是没给密码就会进入 GUI输入模式都不给密码就报错退出了。
控制台输入 GUI输入
参考资料
Gitee: https://gitee.com/roseboy/classfinal