springboot数据库密码加密的配置方法

 更新时间:2021年04月08日 09:53:43   作者:加州暖阳  
这篇文章主要给大家介绍了关于springboot数据库密码加密的配置方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

由于系统安全的考虑,配置文件中不能出现明文密码的问题,本文就给大家详细介绍下springboot配置数据库密码加密的方法,下面话不多说了,来一起看看详细的介绍吧

1.导入依赖

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

2.找到jasypt-1.9.2.jar所在位置,打开cmd

3.输入如下命令执行

java -cp  jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=sad124f1f1rf1fgt5 algorithm=PBEWithMD5AndDES

input :明文密码

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

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

结果如下,OUTPUT就是加密之后的密文(密码)

4.在application.yml文件中配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: ENC(HPPHfpHVXzNf00SQLBrjug==)
    password: ENC(F8ckXFGTF6Wu8dQ51hoNBw==)
    url: jdbc:mysql://localhost:3306/foodie-shop-dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
jasypt:
  encryptor:
    password: sad124f1f1rf1fgt5

5.在启动类Application.java中配置注解,配置完成

//配置数据库加密注解
@EnableEncryptableProperties

6.小结

除了加密MySQL密码的例子之外,当配置文件中有多个密码、Token等需要加密时,这个方法就比较方便了。

除了支持字符串秘钥,jasypt还支持key文件秘钥,更加安全。

在安全要求很高时,还可以使用jasypt默认PBEWITHHMACSHA512ANDAES_256加密算法,该算法需要安装JCE支持。

7.问题

问题描述:在Spring Boot中使用jasypt-spring-boot进行加密,但是提示:

 Description:
 Failed to bind properties under 'spring.datasource.password' to java.lang.String:
     Reason: Failed to bind properties under 'spring.datasource.password' to java.lang.String
 Action:
  Update your application's configuration

解决办法:

3.0.2更改了默认的加密算法,最后的办法是把版本降到2.1.2

总结

到此这篇关于springboot数据库密码加密配置的文章就介绍到这了,更多相关springboot数据库加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java遍历字符串和统计字符个数的操作方法

    Java遍历字符串和统计字符个数的操作方法

    这篇文章主要介绍了Java遍历字符串和统计字符个数的操作方法,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 解决SpringBoot整合Mybatis扫描不到Mapper的问题

    解决SpringBoot整合Mybatis扫描不到Mapper的问题

    这篇文章主要介绍了解决SpringBoot整合Mybatis扫描不到Mapper的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Java中new与clone操作对象的比较方法举例

    Java中new与clone操作对象的比较方法举例

    这篇文章主要给大家介绍了关于Java中new与clone操作对象的比较方法,在java中对象的诞生是我们开发人员new出来的,对象的使用也是我们开发人员进行操作的,需要的朋友可以参考下
    2024-07-07
  • SpringBoot中处理跨域请求CORS的全面指南

    SpringBoot中处理跨域请求CORS的全面指南

    跨域资源共享是一种安全机制,它允许Web应用程序在一个域上的资源请求另一个域上的资源,下面就跟随小编一起来深入了解下SpringBoot中处理跨域请求CORS的具体操作吧
    2025-04-04
  • 如何从Java环境中调用GoLang函数

    如何从Java环境中调用GoLang函数

    Go,常被称为GoLang,Go语言凭借其丰富的标准库,以及 goroutines和 channels等独特特性,在开发可扩展且高效的程序方面展现了显著优势,许多开发者倾向于将Go与其他编程语言结合使用,在本文中,我们将深入探讨如何从Java环境中调用GoLang函数,以实现两种语言的无缝集成
    2025-01-01
  • Java高效利用异常处理的技巧总结

    Java高效利用异常处理的技巧总结

    这篇文章主要为大家详细介绍了Java如何高效利用异常处理,从而达到优化代码的效果,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-09-09
  • SpringMVC JSON数据传输参数超详细讲解

    SpringMVC JSON数据传输参数超详细讲解

    有时候参数的传递还需要更多的参数,比如一个获取用户信息的请求中既有用户ID等基本参数,还要求对查询结果进行分页,针对这种场景,一般都会将分页参数封装成一个对象,然后将它和基本参数一起传给控制器
    2023-02-02
  • Java内部类的全限定名规律代码示例

    Java内部类的全限定名规律代码示例

    这篇文章主要介绍了Java内部类的全限定名规律代码示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 详解java中保持compareTo和equals同步

    详解java中保持compareTo和equals同步

    这篇文章主要介绍了详解java中保持compareTo和equals同步的相关资料,需要的朋友可以参考下
    2017-03-03
  • Java中Map集合的常用方法(非常详细!)

    Java中Map集合的常用方法(非常详细!)

    Java中的Map是一种键值对存储的数据结构,它提供了快速查找和访问数据的能力,下面这篇文章主要给大家介绍了关于Java中Map集合的常用方法,需要的朋友可以参考下
    2024-01-01

最新评论