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数据库加密内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密. 介绍两种加密方式:jasypt 可加密配置文件中所有属性值; druid 自带了加解密,可对数据库密码进行加密. jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项目中,并提供了自动配置,使用非常简单. 步骤如下: 1)引入maven依赖 <de

  • SpringBoot Shiro配置自定义密码加密器代码实例

    shiro主要有三大功能模块: 1. Subject:主体,一般指用户. 2. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件.(类似于SpringMVC中的DispatcherServlet) 3. Realms:用于进行权限信息的验证,一般需要自己实现. 细分功能 1. Authentication:身份认证/登录(账号密码验证). 2. Authorization:授权,即角色或者权限验证. 3. Session Manager:会话管理,用户登录

  • SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools对数据库密码加密的方法

    SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools对数据库密码加密 1.在本地Maven仓库中打开Powershell2.输入命令,然后点击回车3.将生成公钥和加密的数据库密码配置到SpringBoot项目中的yml配置文件中druid的pom版本 1.在本地Maven仓库中打开Powershell 2.输入命令,然后点击回车 scotttiger为未加密的数据库密码 privateKey为生成的私钥 publicKey为生成的公钥

  • Springboot Druid 自定义加密数据库密码的几种方案

    前言 开发过程中,配置的数据库密码通常是明文形式,这样首先第一个安全性不好(相对来说),不符合一个开发规范(如项目中不能出现明文账号密码),其实就是当出现特殊需求时,比如要对非运维人员开方服务器部分权限,但是又涉及项目部署的目录时,容易泄漏数据库密码,虽然一般生产环境中,数据库往往放入内网,访问只能通过内网访问,但是不管怎么说账号密码直接让人知道总归不好,甚至有些项目需要部署到客户环境中,但是可能共用一个公共数据库(数据库只向指定服务器开放外网端口或组建内网环境),这样的情况下,如果数据库密码再

  • SpringBoot项目application.yml文件数据库配置密码加密的方法

    在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了,因此需要进行加密处理才行. 使用@SpringBootApplication注解启动的项目,只需增加maven依赖 我们对信息加解密是使用这个jar包的: 编写加解密测试类: package cn.linjk.ehome; import org.jasypt.encryption.pbe.StandardP

  • SpringBoot+Shiro学习之密码加密和登录失败次数限制示例

    这个项目写到现在,基本的雏形出来了,在此感谢一直关注的童鞋,送你们一句最近刚学习的一句鸡汤:念念不忘,必有回响.再贴一张ui图片: 前篇思考问题解决 前篇我们只是完成了同一账户的登录人数限制shiro拦截器的编写,对于手动踢出用户的功能只是说了采用在session域中添加一个key为kickout的布尔值,由之前编写的KickoutSessionControlFilter拦截器来判断是否将用户踢出,还没有说怎么获取当前在线用户的列表的核心代码,下面贴出来: /** * <p> * 服务实现类

  • springboot对数据库密码加密的实现

    我是黑帽子K,话不多说直接上加密.如有不对,欢迎指正. 开发的同学们都知道,例如项目依赖的信息,数据库信息一般是保存在配置文件中,而且都是明文,因此需要进行加密处理,今天在这里介绍下jasypt集成springboot加密的配置. 首先,这些都是建立在你的springboot项目是能正常运行的前提下. 第一步:pom文件加入依赖,如图: 这里提供一个版本, <dependency> <groupId>com.github.ulisesbocchio</groupId>

  • Springboot实现密码的加密解密

    现今对于大多数公司来说,信息安全工作尤为重要,就像京东,阿里巴巴这样的大公司来说,信息安全是最为重要的一个话题,举个简单的例子: 就像这样的密码公开化,很容易造成一定的信息的泄露.所以今天我们要讲的就是如何来实现密码的加密和解密来提高数据的安全性. 在这首先要引入springboot融合mybatis的知识,如果有这方面不懂得同学,就要首先看一看这方面的知识: 推荐大家一个比较好的博客: 程序猿DD-翟永超 http://blog.didispace.com/springbootmybatis/

  • SpringBoot配置数据库密码加密的实现

    你在使用 MyBatis 的过程中,是否有想过多个数据源应该如何配置,如何去实现?出于这个好奇心,我在 Druid Wiki 的数据库多数据源中知晓 Spring 提供了对多数据源的支持,基于 Spring 提供的 AbstractRoutingDataSource,可以自己实现数据源的切换. 一.配置动态数据源 下面就如何配置动态数据源提供一个简单的实现: org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource,

  • Springboot项目对数据库用户名密码实现加密过程解析

    pom.xml文件中引入如下内容 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>1.16</version> </dependency> 保存pom.xml文件,更新jar 将当前路径切换到jasypt包目录下: 使用如下命

随机推荐