Bảo vệ ứng dụng Spring Boot

Video hướng dẫn bắt đầu

▶️ YouTube

▶️ Bilibili

Tải xuống

Truy cập https://protector4j.com/download để tải phiên bản mới nhất

Cài đặt

Windows và Linux

Không có bước cài đặt đặc biệt nào, chỉ cần tải gói nén về và giải nén.

macOS

Tải tệp dmg và kéo Protector4J vào Applications. Nội dung thực tế của công cụ này nằm trong /Applications/Protector4J.app/Contents/protector4j-mac

Mã hóa ứng dụng Spring Boot bằng công cụ GUI

Đi đến thư mục Protector4J, chạy p4j-ui[.exe], bạn sẽ thấy giao diện người dùng sau.

Đối với người dùng macOS, chỉ cần nhấp đúp vào Protector4J.app như một ứng dụng Mac thông thường.

Đăng nhập

Nếu bạn đã mua giấy phép, vui lòng nhấp vào nút đăng nhập ở góc trên bên phải và nhập thông tin người dùng. Nếu bạn chưa có giấy phép, bạn vẫn có thể dùng thử công cụ này.

Chọn loại ứng dụng

Nhấp vào nút "Spring Boot Application" trên trang loại ứng dụng.

Chọn tệp jar/war cần mã hóa

Chọn các tệp jar/war bạn muốn mã hóa, bạn có thể chọn một hoặc nhiều tệp

Tùy chọn

Chỉ mã hóa các tệp jar

Chỉ mã hóa các tệp jar, không triển khai toàn bộ JRE. Tùy chọn này thường được sử dụng kết hợp với tính năng KeySeed để cập nhật chương trình hiện có.

Tạo tệp thực thi

Tạo tệp thực thi để khởi chạy ứng dụng, vui lòng không thêm phần mở rộng .exe.

Ẩn Console

Tùy chọn này chỉ có hiệu lực cho các chương trình GUI trên Windows và được sử dụng để ẩn cửa sổ dòng lệnh trong quá trình chạy chương trình.

Tùy chọn JVM

Đặt tùy chọn JVM, như -Xmx và -Xms, phân tách bằng dấu cách hoặc xuống dòng.

Đầu ra

Chọn phiên bản Java

Chọn phiên bản Java, hỗ trợ Java 8, Java 11, Java 17 và Java 21

Tạo thư mục mới

Được chọn mặc định, tác vụ mã hóa sẽ tạo một thư mục có tên p4j-[task-id] trong thư mục đầu ra. Kết quả đầu ra được lưu trong thư mục này.

Bao gồm JavaFX

Nếu đây là ứng dụng JavaFX, vui lòng chọn tùy chọn này

Ứng dụng SWT

Nếu đây là ứng dụng SWT, vui lòng chọn tùy chọn này.

KeySeed

Tác vụ mã hóa sẽ yêu cầu một khóa ngẫu nhiên từ máy chủ để mã hóa theo mặc định. Các tệp được tạo trong các tác vụ mã hóa khác nhau không thể sử dụng cùng nhau. Nếu KeySeed được chỉ định, cùng một KeySeed sẽ tạo cùng một khóa mã hóa. Tùy chọn này có thể được sử dụng kết hợp với tùy chọn "Chỉ mã hóa tệp Jar" trước đó để cập nhật ứng dụng hiện có. Tùy chọn này chỉ có hiệu lực cho người dùng có giấy phép.

Thực thi tác vụ mã hóa

Vui lòng đợi một lát, sau khi tác vụ mã hóa hoàn tất, bạn có thể thấy kết quả đầu ra của ứng dụng đã mã hóa trong thư mục đầu ra.

Chạy ứng dụng đã mã hóa

Có ba cách để chạy ứng dụng đã mã hóa

  1. Chạy bằng tệp exe

Nếu nền tảng đích là Windows, bạn có thể chạy ứng dụng đã mã hóa bằng tệp thực thi được tạo trong quá trình mã hóa.

  1. Chạy bằng script

Nếu nền tảng đích là Linux hoặc macOS, bạn có thể tìm tệp script có tên exe-name.sh, bạn có thể chạy ứng dụng bằng tệp script này.

  1. Chạy chương trình bằng lệnh Java truyền thống

Bạn cũng có thể chạy thủ công chương trình bằng vlxjre/bin/java, định dạng lệnh này giống như lệnh java thông thường.

Chúng ta có thể thấy một thư mục có tên vlxjre trong thư mục đầu ra, đây là JRE tùy chỉnh của chúng tôi, và các tệp jar đã mã hóa được lưu trong thư mục 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

Java 8 hiện tại không hỗ trợ chạy qua vlxjre/bin/java -jar. Vui lòng sử dụng vlxjre/bin/java -cp xx MainClass

Lưu ý

Nếu nền tảng đích của chương trình này là macOS hoặc Linux, nhưng được xây dựng trên Windows, vui lòng chạy add-executable-permission.sh trên nền tảng đích để cấp quyền thực thi cho chương trình trước khi khởi chạy lần đầu.

Sửa đổi tham số JVM của tệp exe

Windows

Nếu bạn cần sửa đổi tham số JVM của tệp exe, hãy chỉnh sửa exe-name.json và sửa đổi các giá trị trong mảng JArgs.

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

Linux và macOS

Chỉ cần mở tệp script và thêm hoặc sửa đổi các tham số JVM.

Mã hóa ứng dụng Spring Boot bằng công cụ CLI

Tệp cấu hình

Công cụ CLI cần chỉ định tệp tác vụ làm tham số.

Đi đến thư mục protector4j/task-templates, tìm spring-boot-task.yml, sao chép và chỉnh sửa.

# 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: ''

Thực thi tác vụ mã hóa

Đi đến thư mục Protector4J và chạy lệnh sau.

Linux hoặc macOS

Đối với người dùng macOS, bạn có thể tìm công cụ CLI tại /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

Bạn có thể chạy p4j --help để xem các tham số chi tiết.

Chạy với thông tin tài khoản

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

Xem kết quả

Sau khi tác vụ mã hóa hoàn tất, vui lòng đi đến thư mục đầu ra để kiểm tra kết quả.

Chạy ứng dụng đã mã hóa

Có ba cách để chạy ứng dụng đã mã hóa

  1. Chạy bằng tệp exe

Nếu nền tảng đích là Windows, bạn có thể chạy ứng dụng đã mã hóa bằng tệp thực thi được tạo bởi tác vụ mã hóa.

  1. Chạy bằng script

Nếu nền tảng đích là Linux hoặc macOS, bạn có thể tìm tệp script có tên exe-name.sh, bạn có thể chạy ứng dụng bằng tệp script này.

  1. Chạy chương trình bằng lệnh Java truyền thống

Bạn cũng có thể chạy thủ công chương trình bằng vlxjre/bin/java, định dạng lệnh này giống như lệnh java thông thường.

Chúng ta có thể thấy một thư mục có tên vlxjre trong thư mục đầu ra, đây là JRE tùy chỉnh của chúng tôi, và các tệp jar đã mã hóa được lưu trong thư mục 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

Java 8 hiện tại không hỗ trợ chạy qua vlxjre/bin/java -jar. Vui lòng sử dụng vlxjre/bin/java -cp xx MainClass

Lưu ý

Nếu nền tảng đích của chương trình này là macOS hoặc Linux, nhưng được xây dựng trên Windows, vui lòng chạy add-executable-permission.sh trên nền tảng đích để cấp quyền thực thi cho chương trình trước khi khởi chạy lần đầu.