Springboot Druid 自定义加密数据库密码

前言开发过程中,配置的数据库密码通常是明文形式,这样首先第一个安全性不好(相对来说),不符合一个开发规范(如项目中不能出现明文账号密码),其实就是当出现特殊需求时,比如要对非运维人员开方服务器部分权限,但是又涉及项目部署的目录时,容易泄漏数据库密码,虽然一般生产环境中,数据库往往放入内网,访问只能通过内网访问,但是不管怎么说账号密码直接让人知道总归不好,甚至有些项目需要部署到客户环境中,但是可能共用一个公共数据库(数据库只向指定服务器开放外网端口或组建内网环境),这样的情况下,如果数据库密码再以明文形式存在,就非常危险了,常见的避免这些方式据我了解有2种 第一种:通过网络获取密码 这种是让密码通过接口获取,当然接口中可以做加密认证,但是如果是把获取地址和认证放在了配置文件中,那么稍微用心也能获取到密码,不过也可以跟第二种方法配合使用 第二种:密码加密 通过对密码加密,使得配置文件中配置的密码为密文,从而提升安全性,当然网络获取密码也可以获取加密后的密码,而国内常用的数据库连接池是Druid,所以此文主要是针对Druid的数据库密码加密方案,Druid默认再带了一个密码加密,所以Druid加密密码也有2种方案 Druid加解密密码的2种方案第一种:自带加密 优点:简单快捷,配置方便,无需改动代码(只需要改动配置文件即可) 缺点:自欺欺人式加密,因为密码和公钥都需要配置到配置文件中,只要别人有了配置文件,看出来了你是用的Druid,…

Springboot Druid 使用Slf4j输出可执行SQL

前言在开发中,为了数据安全,所有SQL语句肯定是用占位符的,但是在实际开发中,为了方便追踪问题,经常需要查看具体执行的SQL语句内容,而用了占位符之后,每次真实执行的语句只能靠自己根据参数拼接出来,耗时耗力,所以需要一个方法输出每次执行的SQL语句,并且还是有参数的(替换了占位符),而Druid就支持此功能(Druid的主要功能可不是这个),所以此文主要讲Springboot环境下使用Druid输出可执行SQL,并且是使用的Springboot的默认日志配置格式,因为一旦修改了Springboot的日志配置格式,输出来的日志一般是没有颜色区分的,如下: 而springboot默认配置的日志如下: 当然也可以自己配置出来颜色,只是我个人觉得springboot的默认配置已经很好看了,不用再配置了 当然Springboot配置Druid输出可执行的SQL文档太多了,只是他们都需要配置日志本身,也就是配置后日志输出的样子我不喜欢,所以各种研究后,才有了此文(之前百度是真没有找到用默认配置输出的方法) Druid 介绍Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。以上是官方的自我介绍,也侧面说明了Druid是一个功能强大,自带监控扩展的数据库连接池,具体想了解Druid的话建议去全球最大的同性交友基地了解 配置使用Springboot默认的日志配置文件,意味着就没有log4j.properties之类的文件给我们配置了,那就只有在application.yml或者application.properties中配置springboot告诉它我们哪些地方需要打印日志,需要打印什么级别的日志 首先要配置连接池为Druid spring: application: name: admin-managee datasource: druid:…