Spring Boot配置文件中敏感数据加密(密码文本加密)

Spring Boot配置文件中敏感数据加密(密码文本加密)

一、密文生成

找到 jasypt ,可以下载 jasypt 提供的命令行工具。
jasypt
解压进入bin目录中,可以执行对应的脚本对需要加密的数据进行加密。

.\bin\encrypt.bat algorithm=PBEWITHHMACSHA512ANDAES_256 ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator password=thisisapwd input=123456 

命令运行结束后,OUTPUT下方即为加密后的数据。

  • algorithm:加密算法,jasypt-spring-boot-starter默认加密方式为PBEWITHHMACSHA512ANDAES_256
  • ivGeneratorClassName:初试化向量实现类名,jasypt-spring-boot-starter默认配置为org.jasypt.iv.RandomIvGenerator
  • password:加密密钥,该密钥值后续需要以系统变量或环境变量方式进行配置使用
  • input:需要加密的数据,如数据库密码等

注意:在1.9.3版本环境下,ivGeneratorClassName 必须指定,否则会出现 Operation not possible (Bad input or parameters) 异常。
ERROR

二、环境配置

在项目中添加如下依赖:

<!-- 密码加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>3.0.3</version>
</dependency>

然后在项目配置文件 application.yml中添加如下密钥配置:

# 敏感数据加密
jasypt:
  encryptor:
    password: ${ZRAR_PWD}

其中加密密钥没有直接配置在配置文件中,采用了读取系统变量或环境变量的方式,避免密码被泄露,提高安全性。

通过加密方式获得的密文需要根据一定的格式配置到对应参数中,配置参考:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 1
      max-active: 20
    url: jdbc:oracle:thin:@192.168.9.135:1521:orcl
    username: abc
    password: ENC(HhOncSuEEogoHDuSOaMHLUK4QBNL4FtfJRQ6maVUy/7zzQuA5DCEp/0PEnYxvc7s)

其中 password 参数配置了加密后的密文,需要注意的地方是密文必须使用 ENC前缀加括号包裹,即 ENC(密文)

三、密钥配置

在开发环境中,IDEA中在启动配置中,可以直接配置环境变量。如果想通过系统变量的方式进行配置也是可以的。
密码配置
在Linux环境中,可以在 /etc/profile 文件中通过export命令,定义对应的参数即可。

# 数据加密密钥
export ZRAR_PWD=thisispwd

注意:配置完成后,注意运行 source /etc/profile 命令让配置生效。

参考资料

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值