admin管理员组

文章数量:1632806

文章目录

  • 前言
  • 一、介绍
  • 二、依赖
  • 三、配置密钥
  • 四、生成密文
  • 五、配置文件内容使用密文
  • 六、部署


前言

  • 内容搜集于网上多篇优秀文章,结合自己理解,写下该文

一、介绍

  • Jasypt可以对SpringBoot的配置文件内容进行加密,配置文件文件中可能会包含数据库信息,比较敏感,加密可以更安全

二、依赖

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.4</version>
</dependency>

三、配置密钥

  • 使用KeyGenerator指定AES算法生成的密钥
jasypt:
  encryptor:
    #该密钥只用来生成密文使用,打包时要删掉,否则容易被别人看到密钥来破解密文
    password: nBddBGolI6dpngQwt5NzeA==

四、生成密文

  • 使用jasypt提供的StringEncryptor可以进行加密、解密
@Autowired
private StringEncryptor encryptor;

//加密
String username=encryptor.encrypt("root");
String password=encryptor.encrypt("Root#1234");//0tVgB3s9O+

五、配置文件内容使用密文

  • jasypt默认的格式:ENC(密文)
spring:
  datasource:
      . . . . . .
      password: ENC(0tVgB3s9O+)

六、部署

  • 项目使用加载配置文件时要解密,所以还需要提供给jasypt密钥用来解密
  • 添加启动参数:java -jar xxx.jar -Djasypt.encryptor.password=nBddBGolI6dpngQwt5NzeA==
  • 或者为了进一步提供安全性,将密钥加入环境变量中(因为环境变量文件的查看需要更高权限)
/etc/profile
export JASYPT_PASSWORD=nBddBGolI6dpngQwt5NzeA==
source /etc/profile
  • 启动命令变为:java -jar xxx.jar -Djasypt.encryptor.password=${JASYPT_PASSWORD}

本文标签: 文件加密jasypt