环境准备

若依系统(Ruo Yi)

项目地址

若依开源框架 ,根据项目文档部署好项目即可。这里我使用的是前后端分离版本,微服务版本后续有需要再研究了。

加密工具(ClassFinal)

项目地址

ClassFinal 主要工作是运行该项目包,生成设备码,加密解密项目程序包和启动我们的项目

逆向工具

GitHub地址

JDK 环境

JDK 8下载

加密案例

该案例主要使用插件的方式进行加密,这也是比较推荐的加密方式。更多的方式请自行查看ClassFinal 文档学习。

1. 安装 JDK 8 及以上环境

2. 部署若依项目(此处不做描述)

3. 下载 ClassFinal jar 包 (classfinal-fatjar.jar)

下载描述

4. 生成机械码(可选)

通过以下指令在 ClassFinal jar 包目录运行项目生成当前设备的机械码

java -jar classfinal-fatjar.jar -C

生成机械码
5. pom 文件配置插件信息

ClassFinal 文档也有相关的配置代码,相关配置的说明详细可查看官方文档,此处举例列出若依框架(分离版)的配置。 ruoyi-admin 模块下的 pom.xml

<!-- 加密插件,防止反编译 -->
<plugin>
	<!-- https://gitee.com/roseboy/classfinal -->
	<groupId>net.roseboy</groupId>
	<artifactId>classfinal-maven-plugin</artifactId>
	<version>1.2.1</version>
	<configuration>
	<!-- 加密密码 -->
	<password>123456</password>
	<!-- 机器码 -->
	<code>
		A99A7DFA6738A99AC4814074C72B57F6D41D8CD98F00B204E9800998ECF8427ED41D8CD98F00B204E9800998ECF8427E
	</code>
	<!-- 需要加密的包名 -->
	<packages>com.ruoyi.*</packages>
	<!-- 需要加密的配置文件 -->
	<cfgfiles>*.properties,*Mapper.xml,*.yml</cfgfiles>
	</configuration>
		<executions>
			<execution>
				<phase>package</phase>
					<goals>
						<goal>classFinal</goal>
                    </goals>
            </execution>
        </executions>
</plugin>

6. 打包项目 通过反编译工具查看结果

选择 File , Open File 选择对应 jar 包即可反编译出来

  • 项目未加密前反编译结果

在这里插入图片描述

在这里插入图片描述

  • 项目加密后反编译结果

在这里插入图片描述
在这里插入图片描述

可见加密后的项目配置信息和类方法信息全部都被加密隐藏起来了

7. 运行项目

复制打包后的项目文件:ruoyi-admin.encrypted.jar 包到运行目录,并且把 classfinal-fatijar.jar 包复制过来,通过一下指令运行项目,启动后输入 pom 文件中设置的密码回车即可运行

java -javaagent:classfinal-fatjar.jar  -jar ruoyi-admin-encrypted.jar

程序运行
到此对于 Springboot 单机项目 ClassFinal 的加密方式介绍到这里,谢谢!

Logo

快速构建 Web 应用程序

更多推荐