疯狂餐厅
86.88M · 2026-03-21
作为 Java 开发者,你是否遇到过这样的困扰:
今天要介绍的开源工具 Flux Safety,一行命令就能解决这些问题!
Flux Safety 是一款面向 Java 应用交付的加密保护工具,主打"零代码侵入"理念:
假设你有一个 Spring Boot 项目 demo.jar:
$ java -jar demo.jar
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.x)
Started DemoApplication in 2.5 seconds
下载 Flux Safety 工具:
# 克隆项目
git clone
cd flux-safety
mvn clean package
# 一行命令加密
java -jar flux-safety-tool/target/flux-safety-tool-1.0.0-all.jar
encrypt
--input demo.jar
--output demo-secure.jar
输出结果:
encrypted=/path/to/demo-secure.jar
$ java -jar demo-secure.jar
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _
( ( )___ | '_ | '_| | '_ / _` |
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.x)
Started DemoApplication in 2.5 seconds
神奇的是: 加密后的项目运行效果和原来完全一样!
让我们看看加密前后的文件差异:
$ ls -la demo.jar
-rw-r--r-- 1 user user 45.2M demo.jar
$ jar tf demo.jar | head -10
BOOT-INF/
BOOT-INF/classes/
BOOT-INF/classes/com/example/demo/
BOOT-INF/classes/com/example/demo/DemoApplication.class
BOOT-INF/lib/
BOOT-INF/lib/spring-boot-starter-2.7.0.jar
...
$ ls -la demo-secure.jar
-rw-r--r-- 1 user user 45.3M demo-secure.jar
$ jar tf demo-secure.jar
META-INF/
META-INF/MANIFEST.MF
com/
com/opencode/
com/opencode/fluxsafety/
com/opencode/fluxsafety/common/
com/opencode/fluxsafety/common/EncryptedJarLauncher.class
payload.bin
关键变化:
BOOT-INF/ 目录消失了payload.bin限制软件只能在指定机器运行:
# 绑定当前机器
java -jar flux-safety-tool.jar encrypt
--input demo.jar
--output demo-secure.jar
--bind-current-machine
# 绑定指定指纹
java -jar flux-safety-tool.jar encrypt
--input demo.jar
--output demo-secure.jar
--bind-fingerprint a1b2c3d4e5f6...
查看机器指纹:
$ java -jar flux-safety-tool.jar fingerprint
fingerprint=a1b2c3d4e5f6789012345678901234567890abcd
为项目添加使用期限:
# 生成 30 天有效期的许可证
java -jar flux-safety-tool.jar license
--input demo-secure.jar
--license-secret my-secret-2026
--days 30
--subject "客户A"
# 运行时会检查许可证
java -jar demo-secure.jar
# 如果过期:License expired at: 2026-04-15T10:30:00Z
使用自己的加密密钥:
java -jar flux-safety-tool.jar encrypt
--input demo.jar
--output demo-secure.jar
--vendor-secret my-custom-secret-2026
Flux Safety 的工作原理很简单:
加密阶段:
运行阶段:
| 方案 | 代码修改 | Spring Boot 支持 | 反编译难度 | 机器绑定 |
|---|---|---|---|---|
| ProGuard | 需要配置 | ️ 需要调整 | 不支持 | |
| Native Image | 需要适配 | ️ 有限制 | 不支持 | |
| Flux Safety | 零侵入 | 完美支持 | 支持 |
项目采用双许可模式:
项目地址:gitee.com/nm-remain-s…
Flux Safety 是目前最简单易用的 Java 加密方案:
如果你正在寻找 Java 项目加密方案,不妨试试 Flux Safety。相信它的简单易用会让你惊喜!
作者:流光(313708289@qq.com)
项目:gitee.com/nm-remain-s…