在Spring boot开发中,需要在application.yml文件里配置数据库的连接信息,或者在启动时传入数据库密码,如果不加密,传明文,数据库就直接暴露了,相当于"裸奔"了,因此需要进行加密处理才行。

如果使用@SpringBootApplication注解启动的项目,只需增加maven依赖,其他方式请参考如下GitHub地址的README信息:
---------------------

我们对信息加解密是使用这个jar包的:

编写加解密测试类:

  1. package cn.linjk.ehome;
  2.  
  3. import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
  4. import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
  5. import org.junit.Test;
  6.  
  7. public class JasyptTest {
  8. @Test
  9. public void testEncrypt() throws Exception {
  10. StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
  11. EnvironmentPBEConfig config = new EnvironmentPBEConfig();
  12.  
  13. config.setAlgorithm("PBEWithMD5AndDES"); // 加密的算法,这个算法是默认的
  14. config.setPassword("ljk"); // 加密的密钥
  15. standardPBEStringEncryptor.setConfig(config);
  16. String plainText = "linjingke";
  17. String encryptedText = standardPBEStringEncryptor.encrypt(plainText);
  18. System.out.println(encryptedText);
  19. }
  20.  
  21. @Test
  22. public void testDe() throws Exception {
  23. StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
  24. EnvironmentPBEConfig config = new EnvironmentPBEConfig();
  25.  
  26. config.setAlgorithm("PBEWithMD5AndDES");
  27. config.setPassword("ljk");
  28. standardPBEStringEncryptor.setConfig(config);
  29. String encryptedText = "aHsFtlQjatrOP2s8bfLGkUG55z53KLNi";
  30. String plainText = standardPBEStringEncryptor.decrypt(encryptedText);
  31. System.out.println(plainText);
  32. }
  33. }

  34.   加密串拿到了,现在来修改application.yml的配置:


我们把加密串放在ENC({加密串})即可。

  1.  

还要加这个密钥的配置:


Spring Boot项目application.yml文件数据库配置密码加密的更多相关文章

  1. 让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean

    让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean 问题描述 实现思路 思路一 [不符合要求] 思路二[满足要求] 思路三[未试验] 问题描述 目前我工作环境下,后端主要的框架 ...

  2. 简单的Spring Boot项目——实现连接Mysql数据库

    一.创建Spring Boot项目 参考:使用IntelliJ IDEA创建简单的Spring Boot项目 二.数据库.表的创建 三.项目开发 3.1 pom.xml文件配置 <?xml ve ...

  3. Spring Boot 中application.yml与bootstrap.yml的区别

    其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在. 推荐使用yml,更简洁. bootstrap与application1.加载顺序这里主 ...

  4. Spring Boot 中application.yml与bootstrap.yml的区别(转)

    yml与properties其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在. 推荐使用yml,更简洁. bootstrap与applic ...

  5. Spring Boot 项目 application.properties配置说明

    #======================================================================================# ★☆★☆★☆★☆★☆ ...

  6. Spring Boot中application.yml与bootstrap.yml的区别(转载)

    说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...

  7. Spring Boot中application.yml与bootstrap.yml的区别(转)

    说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...

  8. spring boot 使用application.properties 进行外部配置

    application.properties大家都不陌生,我们在开发的时候,经常使用它来配置一些可以手动修改而且不用编译的变量,这样的作用在于,打成war包或者jar用于生产环境时,我们可以手动修改环 ...

  9. Spring Boot 项目在 IntelliJ IDEA 中配置 DevTools 实现热部署(macOS 系统)

    要配置的内容: 1.Preference -> Build, Execution, Deployment -> Complier -> Build project automatic ...

随机推荐

  1. 微信小程序 - bilibili模仿

    今天真是个大坑,onLoad => 写成了OnLoad 程序一直没法执行, 晚上下班的时候,在微信的小程序中,this不可以直接访问data中的值,得this.data才能访问..

  2. 初识分布式图数据库 Nebula Graph 2.0 Query Engine

    摘要:本文主要介绍 Query 层的整体结构,并通过一条 nGQL 语句来介绍其通过 Query 层的四个主要模块的流程. 一.概述 分布式图数据库 Nebula Graph 2.0 版本相比 1.0 ...

  3. 聊聊并发,进程通信方式,go协程简单应用场景

    开篇提问 知道并发,并行,线程,协程概念吗?或者知道大概含义吗? 有线程为什么还要有协程?区别是什么? 『进程』通信方式知道几种?有没有超过3种? golang『协程』通信方式推荐? 使用并发的目的是 ...

  4. MFC3 基本对话框的使用(三) 滑块与进度条(sdnu)(C++大作业)

    一.完成界面 运行前: 运行后: 二.工具 (1)滑块 (2)进度条 (3)文本框 (4)文本示例 (5)按钮 三.添加变量 四.添加事件 右键单击主对话框空白部分,打开类向导,选择"消息& ...

  5. Flutter 基础组件:按钮

    前言 Material组件库中提供了多种按钮组件如RaisedButton.FlatButton.OutlineButton等,它们都是直接或间接对RawMaterialButton组件的包装定制,所 ...

  6. HAProxy-1.8.20 根据后缀名转发到后端服务器

    global maxconn 100000 chroot /data/soft/haproxy stats socket /var/lib/haproxy/haproxy.sock mode 600 ...

  7. MySQL全面瓦解16:存储过程相关

    概述 大多数SQL语句都是针对一个或多个表的单条语句.但并非所有业务都这么简单,经常会有复杂的操作需要多条语句才能完成. 比如用户购买一个商品,要删减库存表,要生成订单数据,要保存支付信息等等,他是一 ...

  8. zabbix自动发现主机并注册

  9. 洛谷P1198 [JSOI2008]最大数(线段树/单调栈)

    题目链接: https://www.luogu.org/problemnew/show/P1198 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询 ...

  10. innodb引擎的4大特性

    一:插入缓冲 二:二次写 三:自适应哈希 四:预读 1.插入缓冲(insert buffer)插入缓冲(Insert Buffer/Change Buffer):提升插入性能,change buffe ...