springboot 整合druid数据库密码加密功能的实现代码

 更新时间:2021年01月07日 09:03:22   作者:谦竹墨客  
这篇文章主要介绍了springboot 整合druid数据库密码加密功能的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在之前给大家介绍过Springboot Druid 自定义加密数据库密码的几种方案,感兴趣的朋友可以点击查看下,今天通过本文给大家介绍springboot 整合druid数据库密码加密功能,具体内容如下所示:

1.依赖引入

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.21</version>
</dependency>

2.密码加密处理

public static void main(String[] args) throws Exception {
  String password = "Aq6vD!puWbk";
  System.out.println("明文密码: " + password);
  String[] keyPair = ConfigTools.genKeyPair(512);
  //私钥
  String privateKey = keyPair[0];
  //公钥
  String publicKey = keyPair[1];
  //用私钥加密后的密文
  password = ConfigTools.encrypt(privateKey, password);
 
  System.out.println("privateKey:" + privateKey);
  System.out.println("publicKey:" + publicKey);
 
  System.out.println("password:" + password);
 
  String decryptPassword = ConfigTools.decrypt(publicKey, password);
  System.out.println("解密后:" + decryptPassword);
}

3.yml配置文件修改
connectionProperties需要注意,其他版本有connection-properties和connect-properties,注意区分

datasource:
 type: com.alibaba.druid.pool.DruidDataSource
 # 特别注意:java 9以后需要将com.mysql.jdbc.Driver 改为 com.mysql.cj.jdbc.Driver即可
 # 否则报错:Loading class `com.mysql.jdbc.Driver'. This is deprecated.
 driver-class-name: com.mysql.cj.jdbc.Driver
 druid:
  #基本属性
  url: jdbc:mysql://1******:3306/**?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
  username: admin
  password: Qh0VAjlS/LVbsAFSAFsdf24jJ7rggMNsnvJex3x1mkUKxPd2bofuAR6DtjCV20M4n2DWc5SLZmkzgjvG3Elx1g==
  #此处需要注意,其他版本有connection-properties和connect-properties,注意区分
  connectionProperties: config.decrypt=true;config.decrypt.key=${publicKey};
  filter:
  config:
   enabled: true # 启动ConfigFilter
  #配置初始化大小/最小/最大[仅用于测试,生产环境需要修改]
  initial-size: 5
  min-idle: 5
  max-active: 20
  #获取连接等待超时时间
  max-wait: 60000
  #间隔多久进行一次检测,检测需要关闭的空闲连接
  time-between-eviction-runs-millis: 10000
  #一个连接在池中最小生存的时间
  min-evictable-idle-time-millis: 300000
  #指定获取连接时连接校验的sql查询语句
  validation-query: SELECT 'x'
  #验证连接的有效性
  test-while-idle: true
  #获取连接时候验证,会影响性能(不建议true)
  test-on-borrow: false
  #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
  pool-prepared-statements: false
  max-pool-prepared-statement-per-connection-size: 20
publicKey: MFwwDQYJKoZIhafwqfDSAwAwSAJBAIG3LgXwadfgferwbWdkGNDzgrjfSWfrBjJ2X+m9lajH7yGPeE/vLs4hdtr1RCITBKJeevZpwZ0DBLctVS6Dc0CAwEAAQ==

到此这篇关于springboot 整合druid数据库密码加密功能的实现代码的文章就介绍到这了,更多相关springboot 整合druid密码加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis中Oracle参数为NULL错误问题及解决

    mybatis中Oracle参数为NULL错误问题及解决

    这篇文章主要介绍了mybatis中Oracle参数为NULL错误问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 再谈java回调函数

    再谈java回调函数

    个人对于回调函数的理解就是回调函数就是回头再调用的函数,哈哈,下面我们来详细探讨下回调函数。
    2015-07-07
  • 一篇文章教你如何在SpringCloud项目中使用OpenFeign

    一篇文章教你如何在SpringCloud项目中使用OpenFeign

    这篇文章主要介绍了SpringCloud 使用Open feign 优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-08-08
  • java切分字符串的2种方法实例

    java切分字符串的2种方法实例

    在我们日常工作中经常遇到截取字符串的需求,下面这篇文章主要给大家介绍了关于java切分字符串的2种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • java中如何实现对类的对象进行排序

    java中如何实现对类的对象进行排序

    在本篇文章里小编给各位整理一篇关于java中如何实现对类的对象进行排序知识点内容,有兴趣的朋友们可以学习下。
    2020-02-02
  • 使用@SpringBootTest注解进行单元测试

    使用@SpringBootTest注解进行单元测试

    这篇文章主要介绍了使用@SpringBootTest注解进行单元测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java线程池获取池中所有线程列表的方法总结

    Java线程池获取池中所有线程列表的方法总结

    在Java中,获取线程池中所有线程列表并不是一个直接支持的功能,因为线程池的设计通常是为了隐藏和管理底层的线程细节,从而提供更高层次的抽象和并发控制能力,本文给大家介绍了Java线程池获取池中所有线程列表的方法,需要的朋友可以参考下
    2024-10-10
  • Java Bean的作用域,生命周期和注解

    Java Bean的作用域,生命周期和注解

    这篇文章主要介绍了浅谈Spring中Bean的作用域,生命周期和注解,具有一定借鉴价值,需要的朋友可以参考下,希望能够给你带来帮助
    2021-11-11
  • 查找native方法的本地实现函数native_function详解

    查找native方法的本地实现函数native_function详解

    JDK开放给用户的源码中随处可见Native方法,被Native关键字声明的方法说明该方法不是以Java语言实现的,而是以本地语言实现的,Java可以直接拿来用。这里介绍下查找native方法的本地实现函数native_function,感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • Java实用技巧:如何使用String去除开头的第一个字符?

    Java实用技巧:如何使用String去除开头的第一个字符?

    这篇文章主要介绍了Java实用技巧:如何使用String去除开头的第一个字符,需要的朋友可以参考下
    2023-11-11

最新评论