SpringBoot 项目加密部署

  • 通过开源的 https://github.com/core-lib/xjar.git 来实现对项目的低侵入加密部署

在项目中添加依赖

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.core-lib</groupId>
    <artifactId>loadkit</artifactId>
    <version>v1.0.1</version>
</dependency>

编译项目

创建一个简单的 maven 工程加入加密端依赖

<dependency>
    <groupId>com.github.core-lib</groupId>
    <artifactId>xjar</artifactId>
    <version>v2.0.6</version>
</dependency>

在 main 函数中编写加密代码

public static void main(String[] args) throws Exception {
    XKey xKey = XKit.key("password");
    // SpringBoot Jar 包加密
    XBoot.encrypt("E:/code/demo/target/demo-0.0.1-SNAPSHOT.jar",
                  "E:/code/demo/target/demo.jar", xKey);
    // SpringBoot Jar 包解密
    XBoot.decrypt("E:/code/demo/target/demo.jar", 
                  "E:/code/demo/target/demo-decrypted.jar", xKey);
}

启动项目的两种方式

  • 命令行运行JAR 然后在提示输入密码的时候输入密码后按回车即可正常启动
java -jar /path/to/encrypted.jar
  • 对于 nohup 这种后台启动方式,无法使用控制台来输入密码,推荐使用指定密钥文件的方式启动
nohup java -jar encrypted.jar --xjar.keyfile=/path/to/pass.key > encrypted.log &

密钥文件格式

password: PASSWORD
algorithm: ALGORITHM
keysize: KEYSIZE
ivsize: IVSIZE
hold: HOLD

配置说明, 密钥文件在读取后将自动删除。

参数名称参数含义缺省值说明
password密码密码字符串
algorithm密钥算法AES支持JDK所有内置算法,如AES / DES …
keysize密钥长度128根据不同的算法选取不同的密钥长度。
ivsize向量长度128根据不同的算法选取不同的向量长度。
hold是否保留false读取后是否保留密钥文件。
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值