boot数据加解密 spring_springboot项目使用druid对数据库密码的加解密
作为一名有经验的开发人员,是不习惯将明文直接放在代码中,总觉得有隐患。今天搭建了一个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对数据库密码的加解密相关推荐
- SpringBoot集成Druid和数据库密码加密
Druid是阿里开发的数据库连接池,通过简单的配置,可以实现数据库的连接,性能特别强大,可以在页面访问,包括监控数据库性能参数,慢SQL统计,当然还包括数据库连接等. 今天主要记录一下SpringBo ...
- 集成druid实现数据库密码加密功能
数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战.可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter. 目录 1.执行命令加密数据库密码 2.配置数据源,提示Drui ...
- caesar解密_C和C ++中的Caesar密码[加密和解密]
caesar解密 Get program for caesar cipher in C and C++ for encryption and decryption. 获取用于C和C ++的凯撒密码的程 ...
- Druid对数据库配置进行加解密
** 把数据库用户名和密码写在配置文件中,不安全,这里用阿里的druid数据库连接池对指定配置属性进行自定义加解** 这里对springMVC 框架的项目做简单介绍,下边简单介绍下配置: * 第一步* ...
- boot jpa mysql postman spring_springboot使用spring-data-jpa操作MySQL数据库
我们在上一篇搭建了一个简单的springboot应用,这一篇将介绍使用spring-data-jpa操作数据库. 新建一个MySQL数据库,这里数据库名为springboot,建立user_info数 ...
- druid jar包_使用druid实现Spring boot配置文件中数据库密码密文存储
通常在编写代码的时候,数据库的用户名和密码以明文的方法写到配置文件中,系统运维为了保证一定的安全性,要求我们在配置文件中使用密文的方式存储,本文主要介绍使用druid实现数据库密码密文显示的方法. 一 ...
- SSM项目的数据库密码加密方案
项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...
- druid连接池配置数据库密码加密
druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件.远程服务器等三种地方,这里只讲第一种方法. 1.密码加密:cd到druid包所在文件夹打开命令行,输入 java -cp dr ...
- Druid之——连接池自定义数据库密码加解密的实现
转载请注明出处:https://blog.csdn.net/l1028386804/article/details/79920338 Druid是阿里巴巴开发的一款数据库连接池,它支持对数据库密码的加 ...
最新文章
- 性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化
- 用jsp实现右导航窗格_不想升级操作系统,可以用这三种方法阻止Windows10更新
- 点击切换图标方法,jquery bootstrap方法
- golang逃逸分析
- 为什么一点onclick按钮就提交表单?
- ArcGis融合小多边形到相邻多边形
- 微信小程序把玩(三十三)Record API
- linux 磁盘科隆,上海第二工业大学嵌入式操作系统B复习(无答案版)
- 机器学习笔记(2):单变量线性回归
- 作为一个上市公司HR,跟大家分享一些面试的真相
- 库ppt演示 python_python操作Power Point:PPT幻灯片布局基础
- The LLVM Compiler Infrastructure | LLVM编译器基础设施
- Android属性动画赏析,Android源码分析—属性动画的工作原理
- com/fasterxml/jackson/core/exc/InputCoercionException
- 不能创建对象qmdispatch_ActiveX部件不能创建对象:‘dm.dmsoft',代码:800A01AD
- SpringBoot安全验证之Referer拦截器
- android 蓝牙传输文件,android-通过蓝牙发送文件
- 【x86架构】x86平台CPU的历史
- DTW 动态时间规整
- 日本金融监管机构将推出新的ICO法规
热门文章
- 异常“只能在执行Render()的过程中调用RegisterForEventValidation”的解决办法(转)...
- python深度爬虫_总结:常用的 Python 爬虫技巧
- mysql高可用_mysql高可用方案
- 1.4 通过时间的反向传播-深度学习第五课《序列模型》-Stanford吴恩达教授
- 第五章 Octave 教程-机器学习老师板书-斯坦福吴恩达教授
- 3.2 神经网络概述-机器学习笔记-斯坦福吴恩达教授
- 15.verilog可综合语句设计综述
- 基于FPGA的AES加解密读写控制系统,实现FLASH内部读写内容的销毁功能
- 【对讲机的那点事】节日出游对讲机选择你了解多少?
- Centos7 安装 nginx 服务器的两种方式