保护SpringBoot应用程序

入门视频

▶️ https://www.youtube.com/watch?v=FKqruAJAJFw

下载

访问 https://protector4j.com/download 下载最新版。

安装

Windows 与 Linux

没有特别的安装步骤, 只需要下载压缩包并解压即可。

macOS

下载dmg文件并拖拽Protector4J到Applications, 程序的实际内容在Protector4J.app/Contents/protector4j-mac

使用GUI工具加密SpringBoot应用

进入Protector4J文件夹, 运行p4j-ui[.exe] , 你将会看到下面的用户界面

对于macOS用户, 像普通mac应用一样双击Protector4J.app即可

登录

如果你已经购买了授权, 请点击右上角的登录按钮,输入用户信息,如果没有授权,您仍然可以试用这个工具

选择应用类型

在程序类型页面点击"Spring Boot Application"按钮。

选择需要加密的jar/war文件

选择需要加密的jar/war文件,可以单选或者多选

选项

Just encrypt jar files

只加密jar文件,不输出整个jre, 这个选项通常与KeySeed特性结合使用,用于更新现有的程序。

创建可执行文件

创建用于启动应用的可执行文件, 请不要添加.exe扩展名.

隐藏命令行窗口

这个选项仅对Windows下的GUI程序有效,用于隐藏程序执行时的命令行窗口

JVM选项

设置JVM选项,如-Xmx与-Xms等,以空格或者换行分割。

输出

执行加密任务

请等待一段时间,待加密任务完成之后,您可以在输出文件夹中看到输出的加密应用。

运行加密的应用

有三种方式运行加密后的应用

  1. 使用exe文件运行

使用加密任务生成的可执行文件运行加密应用

  1. 使用脚本运行

使用与exe文件同名的脚本文件运行应用,如果你打开这个脚本文件,你可以看到我们如何使用传统的Java命令运行程序。

  1. 使用传统的Java命令运行程序

你也可以使用传统的Java命令手动运行程序,命令的格式与传统Java命令相同。

我们可以在输出文件夹中看到一个命名vlxjre的文件夹,这是我们定制的jre运行环境,同时加密后的jar文件存储在vlxlib文件夹中。

vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

注意事项

如果这个程序的目标平台是macOS或者Linux,但是在Windows下生成,在首次使用时请在目标平台上运行add-executable-permission.sh,以给予程序运行权限。

修改exe文件的运行参数

如果你需要修改exe文件的JVM参数, 编码exe-name.json, 修改JVMOptions数组的值

"JArgs"          : [
  "-DParam1=value1",
  "-DParam2=value2"
]

使用命令行工具加密SpringBoot应用

配置文件

命令行工具需要指定一个任务文件作为参数

task-templates文件夹中找到spring-boot-task.yml,复制并且修改

# Available values: 8,11,17
javaVersion: 8

# The jar file of spring boot application 
springBootJarFile: ''
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Executable file information ]
# The executable file name
exeFileName: ''
# Hide command line window, only valid for Windows
hideConsole: false
# The splash image
splash: ''
# JVM Options
jvmOptions: []

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Whether this is a JavaFX application
includeJavaFX: false
# Whether this a swt gui application
swtApplication: false
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, keep it empty for current plaform, 
# available values: [win, linux, mac]
platforms: []

执行加密任务

进入到Protector4J文件夹执行下面命令

Linux或macOS

对于macOS用户,你可以在Protector4J.app/Contents/protector4j-mac下找到cli工具

./p4j -t java -f path-of-task-file

Windows

p4j -t java -f path-of-task-file

> -t task type > > -f task file

可以运行p4j --help查看详细参数

添加用户信息运行

./p4j -t java -f path-of-task-file -u email -p password

查看结果

加密任务完成之后,请前往输出文件夹查看结果。

运行加密的应用

有三种方式运行加密后的应用

  1. 使用exe文件运行

使用加密任务生成的可执行文件运行加密应用

  1. 使用脚本运行

使用与exe文件同名的脚本文件运行应用,如果你打开这个脚本文件,你可以看到我们如何使用传统的Java命令运行程序。

  1. 使用传统的Java命令运行程序

你也可以使用传统的Java命令手动运行程序,命令的格式与传统Java命令相同。

我们可以在输出文件夹中看到一个命名vlxjre的文件夹,这是我们定制的jre运行环境,同时加密后的jar文件存储在vlxlib文件夹中。

vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass