Spring Boot 使用jasypt 加密数据源配置信息

Spring Boot 使用jasypt 加密数据源配置信息

jasypt( Java simplified encryption)

项目中简单应用

https://github.com/ulisesbocchio/jasypt-spring-boot

pom.xml

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

使用此jar生成密文,在此路径下执行下面命令行生成密文

.m2\repository\org\jasypt\jasypt\1.9.2> java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=mua1w58wO algorithm=PBEWithMD5AndDES input=root

执行以上命令输出下面的结果

----ENVIRONMENT-----------------

Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.181-b13
----ARGUMENTS-------------------

input: root
algorithm: PBEWithMD5AndDES
password: mua1w58wO

----OUTPUT----------------------

LqA4QvntRFStX0jiDjkJWw==

input:要加密的字符串(此处是数据库用户名)
algorithm:加密算法(默认:PBEWithMD5AndDES)
password:加密密钥(解密需要它,妥善保管,不能被泄漏)
OUTPUT:加密后的密文

对数据库的密码以相同的方法得到加密密文

application.yml

spring:
  application:
    name: app
  datasource:
    url: xxxxxxxx
    driver-class-name: com.mysql.jdbc.Driver
    username: ENC(5RwkxI+reRMVmS9TemQTrcVozEdGS5bz)
    password: ENC(OWvCdX3Bove0kv84mG0U5p7OWRK/xBzDwOkAnvxXXkA=)

其中ENC()是必须的,如果没有ENC()则认为是未经过加密的明文,不会进行解密处理
idea 配置环境变量
这是模拟生产环境的配置,–jasypt.encryptor.password的值应该配置的环境变量中,在命令行启动jar时指定其值
真实的情况应该是在系统中配置环境变量,如下

在系统环境里配置

export JASYPT_PASSWORD=mua1w58wXXXXOXXXXX

java -jar app-0.0.1-SNAPSHOT.jar --jasypt.encryptor.password=${JASYPT_PASSWORD}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值