作为一名有经验的开发人员,是不习惯将明文直接放在代码中,总觉得有隐患。今天搭建了一个springboot项目,需要集成数据库,调取数据。

在配置 datasource的时候,想要将密码改为密文,连接数据库时再进行解密(代码中是单数据库源,druid自带解密,配置一下就行),使用的是阿里的druid

1、pom文件引入druid

阿里 Druid为SpringBoot 提供专门的start依赖

2、生成加密的密码、公钥(为解密所用)、秘钥(为加密所用)

有两种方法(本质是一样的)

使用命令:java -cp jar包名 com.alibaba.druid.filter.ConfigTools 需要加密的密码

注:这里的jar包指的是上图中引入的druid

在下载下的jar包路径下使用cmd命令行

如:java -cp druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools 123456

另一种方法是在代码中调用ConfigTools类的入口方法。(其实上边的命令也是调用了ConfigTools类中入口函数)

单元测试调用ConfigTools:

运行结果:

3、application.yml配置

我试过使用下边这种写法:启动不报错,但是链接数据库时提示密码错误。(因为这种写法,不会解密,报错是正常的)

至此,加密解密完成。

值得注意的是DruidDataSource这个类,可以在源码中找到报错信息以及错误原因:如密码不正确,如何锁定到没有解密的这个原因:

这个方法点进去

boot数据加解密 spring_springboot项目使用druid对数据库密码的加解密相关推荐

  1. SpringBoot集成Druid和数据库密码加密

    Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...

  2. 集成druid实现数据库密码加密功能

    数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战.可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter. 目录 1.执行命令加密数据库密码 2.配置数据源,提示Drui ...

  3. caesar解密_C和C ++中的Caesar密码[加密和解密]

    caesar解密 Get program for caesar cipher in C and C++ for encryption and decryption. 获取用于C和C ++的凯撒密码的程 ...

  4. Druid对数据库配置进行加解密

    ** 把数据库用户名和密码写在配置文件中,不安全,这里用阿里的druid数据库连接池对指定配置属性进行自定义加解** 这里对springMVC 框架的项目做简单介绍,下边简单介绍下配置: * 第一步* ...

  5. boot jpa mysql postman spring_springboot使用spring-data-jpa操作MySQL数据库

    我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库. 新建一个MySQL数据库,这里数据库名为springboot,建立user_info数 ...

  6. druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储

    通常在编写代码的时候,数据库的用户名和密码以明文的方法写到配置文件中,系统运维为了保证一定的安全性,要求我们在配置文件中使用密文的方式存储,本文主要介绍使用druid实现数据库密码密文显示的方法. 一 ...

  7. SSM项目的数据库密码加密方案

    项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...

  8. druid连接池配置数据库密码加密

    druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件.远程服务器等三种地方,这里只讲第一种方法. 1.密码加密:cd到druid包所在文件夹打开命令行,输入 java -cp dr ...

  9. Druid之——连接池自定义数据库密码加解密的实现

    转载请注明出处:https://blog.csdn.net/l1028386804/article/details/79920338 Druid是阿里巴巴开发的一款数据库连接池,它支持对数据库密码的加 ...

最新文章

  1. 性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化
  2. 用jsp实现右导航窗格_不想升级操作系统,可以用这三种方法阻止Windows10更新
  3. 点击切换图标方法,jquery bootstrap方法
  4. golang逃逸分析
  5. 为什么一点onclick按钮就提交表单?
  6. ArcGis融合小多边形到相邻多边形
  7. 微信小程序把玩(三十三)Record API
  8. linux 磁盘科隆,上海第二工业大学嵌入式操作系统B复习(无答案版)
  9. 机器学习笔记(2):单变量线性回归
  10. 作为一个上市公司HR,跟大家分享一些面试的真相
  11. 库ppt演示 python_python操作Power Point:PPT幻灯片布局基础
  12. The LLVM Compiler Infrastructure | LLVM编译器基础设施
  13. Android属性动画赏析,Android源码分析—属性动画的工作原理
  14. com/fasterxml/jackson/core/exc/InputCoercionException
  15. 不能创建对象qmdispatch_ActiveX部件不能创建对象:‘dm.dmsoft',代码:800A01AD
  16. SpringBoot安全验证之Referer拦截器
  17. android 蓝牙传输文件,android-通过蓝牙发送文件
  18. 【x86架构】x86平台CPU的历史
  19. DTW 动态时间规整
  20. 日本金融监管机构将推出新的ICO法规

热门文章

  1. 异常“只能在执行Render()的过程中调用RegisterForEventValidation”的解决办法(转)...
  2. python深度爬虫_总结:常用的 Python 爬虫技巧
  3. mysql高可用_mysql高可用方案
  4. 1.4 通过时间的反向传播-深度学习第五课《序列模型》-Stanford吴恩达教授
  5. 第五章 Octave 教程-机器学习老师板书-斯坦福吴恩达教授
  6. 3.2 神经网络概述-机器学习笔记-斯坦福吴恩达教授
  7. 15.verilog可综合语句设计综述
  8. 基于FPGA的AES加解密读写控制系统,实现FLASH内部读写内容的销毁功能
  9. 【对讲机的那点事】节日出游对讲机选择你了解多少?
  10. Centos7 安装 nginx 服务器的两种方式