Proteger aplicaciones de Spring Boot

Videos de inicio

▶️ YouTube

▶️ Bilibili

Descargar

Visitahttps://protector4j.com/downloadpara descargar la última versión

Instalación

Windows y Linux

No hay pasos de instalación especiales, simplemente descargue el archivo y extráigalo.

macOS

Descarga el archivo dmg y arrastra Protector4J a Applications. El contenido real de esta herramienta se encuentra en/Applications/Protector4J.app/Contents/protector4j-mac

Encriptar aplicaciones de Spring Boot con herramientas de GUI

Ve a la carpeta Protector4J, ejecutap4j-ui[.exe], verá la siguiente interfaz de usuario.

Para usuarios de macOS, simplemente haga doble clic en Protector4J.app como si fuera una aplicación Mac normal.

Iniciar sesión

Si ya compró la licencia, haga clic en el botón de inicio de sesión en la esquina superior derecha e ingrese su información de usuario. Si no tiene una licencia, aún puede probar esta herramienta.

Seleccionar tipo de aplicación

Haga clic en el botón "Aplicación Spring Boot" en la página de tipo de aplicación.

Seleccione el archivo jar/war que necesita ser encriptado

Seleccione los archivos jar/war que desea cifrar, puede seleccionar uno o varios archivos

Opciones

Solo cifrar archivos jar

Cifre únicamente los archivos jar, sin implementar todo el jre. Esta opción generalmente se usa en combinación con la función KeySeed para actualizar programas existentes.

Crear archivo ejecutable

Cree un archivo ejecutable para iniciar la aplicación; no agregue la extensión .exe.

Consola oculta

Esta opción sólo es efectiva para programas GUI en Windows y se utiliza para ocultar la ventana de la línea de comandos durante la ejecución del programa.

Opciones de JVM

Configure las opciones de JVM, como -Xmx y -Xms, separadas por espacios o saltos de línea.

salida

Selección de versión de Java

Elige la versión de Java, compatible con Java 8, Java 11, Java 17 y Java 21

Crear nueva carpeta

Seleccionado de forma predeterminada, la tarea de cifrado creará un archivo llamado p4j-[task-id] en la carpeta de salida. El resultado de salida se almacena en esta carpeta.

Incluyendo JavaFX

Si es una aplicación JavaFX, seleccione esta opción

Aplicación SWT

Si es una aplicación SWT, seleccione esta opción.

KeySeed

La tarea de cifrado solicitará una clave aleatoria del servidor para el cifrado de forma predeterminada. Los archivos generados en diferentes tareas de cifrado no se pueden utilizar juntos. Si se especifica KeySeed, el mismo KeySeed generará la misma clave de cifrado. Esta opción se puede utilizar con la opción anterior "Solo cifrar archivos Jar" para actualizar aplicaciones existentes. Esta opción sólo es válida para usuarios con licencia.

Ejecutar tarea de encriptación

Espere un momento, una vez completada la tarea de cifrado, podrá ver el resultado de salida de la aplicación cifrada en la carpeta de salida.

Ejecutar aplicaciones encriptadas

Hay tres formas de ejecutar la aplicación encriptada

  1. Ejecutar con archivo exe

Si la plataforma de destino es Windows, puede ejecutar la aplicación cifrada con el archivo ejecutable generado durante la tarea de cifrado.

  1. Ejecutar con script

Si la plataforma objetivo es Linux o macOS, puedes encontrar un archivo de script con el nombreexe-name.sh, puede ejecutar la aplicación con este archivo de script.

  1. Ejecutando el programa con el comando tradicional de Java

También puede ejecutar manualmente el programa con vlxjre/bin/java, el formato de este comando es el mismo que el comando java normal.

Podemos ver una carpeta llamada vlxjre en el directorio de salida, que es nuestro JRE personalizado, y los archivos jar cifrados se almacenan en la carpeta vlxlib.

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

Actualmente, Java 8 no admite la ejecución a través de vlxjre/bin/java -jar. Utilice vlxjre/bin/java -cp xx MainClass

Avisos

Si la plataforma objetivo de este programa es macOS o Linux, pero se construye en Windows, por favor ejecuteadd-executable-permission.sh en la plataforma de destino para otorgar permiso de ejecución al programa antes del primer inicio.

Modificar los parámetros de JVM del archivo exe

Windows

Si necesita modificar los parámetros de JVM del archivo exe, editeexe-name.json y modifique los valores en la matriz JArgs.

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

Linux y macOS

Simplemente abra el archivo de script y agregue o modifique los parámetros de JVM.

Cifre las aplicaciones Spring Boot con la herramienta CLI.

Archivo de configuración

La herramienta CLI necesita especificar un archivo de tarea como parámetro.

Ir al protector4j/task-templatescarpeta, encontrarspring-boot-task.yml, copiar y modificar uno.

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

# 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: []

## [ Windows exe file information (Optional and only valid for Windows) ]
icon: ''
productName: ''
productVersion: ''
fileVersion: ''
fileDescription: ''
companyName: ''
legalCopyright: ''

Ejecute la tarea de cifrado.

Vaya a la carpeta Protector4J y ejecute el siguiente comando.

Linux o macOS

Para usuarios de macOS, puedes encontrar la herramienta de línea de comandos en/Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t spring-boot -f path-of-task-file

Windows

p4j -t spring-boot -f path-of-task-file

Puedes ejecutarp4j --help para ver los parámetros detallados.

Ejecutar con información de la cuenta

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

Ver resultados

Una vez completada la tarea de cifrado, vaya a la carpeta de salida para verificar los resultados.

Ejecutar aplicaciones encriptadas

Hay tres formas de ejecutar la aplicación encriptada

  1. Ejecutar con archivo exe

Si la plataforma de destino es Windows, puede ejecutar la aplicación cifrada con el archivo ejecutable generado por la tarea de cifrado.

  1. Ejecutar con script

Si la plataforma objetivo es Linux o macOS, puedes encontrar un archivo de script con el nombreexe-name.sh, puede ejecutar la aplicación con este archivo de script.

  1. Ejecutando el programa con el comando tradicional de Java

También puede ejecutar manualmente el programa con vlxjre/bin/java, el formato de este comando es el mismo que el comando java normal.

Podemos ver una carpeta llamada vlxjre en el directorio de salida, que es nuestro JRE personalizado, y los archivos jar cifrados se almacenan en la carpeta vlxlib.

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

Actualmente, Java 8 no admite la ejecución a través de vlxjre/bin/java -jar. Utilice vlxjre/bin/java -cp xx MainClass

Avisos

Si la plataforma objetivo de este programa es macOS o Linux, pero se construye en Windows, por favor ejecuteadd-executable-permission.sh en la plataforma de destino para otorgar permiso de ejecución al programa antes del primer inicio.