出于系统安全的考虑,配置文件中不能出现明文密码的问题,本文就给大家详细介绍下springboot配置数据库密码加密的方法,需要的朋友可以参考下

一、导入依赖

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

二、找到jasypt-1.9.3.jar所在位置,打开cmd

maven仓库:*****\repository\org\jasypt\jasypt\1.9.3(找到自己的maven仓库)

tip:可以在文件夹上方的文件路径处输入cmd并回车

三、执行命令

java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your_password" password=your_key algorithm=PBEWithMD5AndDES

input :明文密码,就是要加密的密码

password:要加的盐(可自己设置)

algorithm:加密算法,这里使用 PBEWithMD5AndDES

结果如下:

----ENVIRONMENT-----------------
Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 11.0.15+10-LTS-19
----ARGUMENTS-------------------
algorithm: PBEWITHHMACSHA512ANDAES_256
input: your_password
password: encryption_key
----OUTPUT----------------------
AbCdEfGhIjKlMnOpQrStUvWxYz0123456789==

OUTPUT下方就是加密后的密码

四、在application.yml文件中将密码改为加密后的

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/lss_admin_v1_1?serverTimezone=UTC&nullCatalogMeansCurrent=true
    username: your_username
    password: ENC(加密后的密码)

五、传递加密密钥

5.1、方式一:通过启动参数传递
在idea开发工具中设置vm options,添加代码

-Djasypt.encryptor.password=刚刚设置的key,也就是盐

5.2、方式2:在 application.yml 中配置(不推荐,仅用于测试)

jasypt:
  encryptor:
    password: 刚刚设置的key,也就是盐
spring:
  datasource:
    url: **********

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐