1.application.yml配置

 1 spring:
 2   datasource:
 3     jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
 4     username: root
 5     password: 'f687101570bae7ce4d313c2b4440f4ae'
 6     #自动提交
 7     auto-commit: true
 8     #最小连接
 9     minimum-idle: 100
10     #最大连接
11     maximum-pool-size: 200
12     #最大空闲时间
13     idle-timeout: 60000
14     #连接池名
15     pool-name: DatebookHikariCP
16     #最大生命周期
17     max-lifetime: 900000
18     #连接超时时间
19     connection-timeout: 15000
20     #心跳检测
21     connection-test-query: SELECT 'x' FROM DUAL

2. 构建UmspscDataSource类,继承HikariDataSource类

 1 @Slf4j
 2 public class UmspscDataSource extends HikariDataSource {
 3     private String passwordDis;
 4     /**
 5      * 密匙
 6      */
 7     private final static String PKEY ="1234565437892132";
 8     @Override
 9     public String getPassword(){
10
11         if(StringUtils.isNotBlank(passwordDis)){return passwordDis;}
12         String encPassword = super.getPassword();
13         if(null==encPassword){
14             return null;
15         }
16         log.info("数据库密码加解密,{"+encPassword+"}");
17         try{
18             //  密文解密,解密方法可以修改
19             String key = HexUtil.encodeHexStr(PKEY);
20             SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes());
21             passwordDis = aes.decryptStr(encPassword, CharsetUtil.CHARSET_UTF_8);
22             return passwordDis;
23         }catch (Exception e){
24             log.error("数据库密码解密出错,{"+encPassword+"}");
25             log.error(LogUtil.e(e));
26             throw new AppException("数据库密码解密失败!", e);
27         }
28     }
29 }

3.初始化DataSource类

 1 @Component
 2 public class CommonBeanFactory {
 3
 4     @Bean(name = "dataSource", autowire = Autowire.NO)
 5     @Primary
 6     @ConfigurationProperties(ignoreUnknownFields = false,prefix="spring.datasource")
 7     public HikariDataSource dataSource() {
 8         HikariDataSource druidDataSource = new UmspscDataSource();
 9         return druidDataSource;
10     }
11 }

*******************************

构建密文

 1 @Slf4j
 2 public class Main {
 3
 4     public static void main(String[] args) {
 5         //明文
 6         String content = "123456";
 7         //密匙
 8         String pkey = "1234565437892132";
 9         log.info("密匙:" + pkey);
10         String key = HexUtil.encodeHexStr(pkey);
11         //构建
12         SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes());
13
14         //加密为16进制表示
15         String encryptHex = aes.encryptHex(content);
16         log.info("密文:" + encryptHex);
17         //解密为字符串
18         String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
19         log.info("明文:" + decryptStr);
20     }
21 }

转载于:https://www.cnblogs.com/ljb161108/p/11334451.html

Springboot整合Hikari数据库连接池,密码加密相关推荐

  1. SpringBoot整合Druid连接池

    SpringBoot整合Druid连接池 前言 第一种整合方式 自定义的方式 引入Druid依赖 配置文件 配置类 实现监控功能 开启SQL防火墙 实现web应用 访问Druid页面需登录 第二种整合 ...

  2. SpringBoot整合Hikari

    Hikari简介 什么是Hikari数据库连接池? 号称史上最快连接池 轻量! 如何整合? 无需导入依赖,以及被SpringBoot包含 是默认的数据库连接池 如何配置?两种方法 1.手动创建 pub ...

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

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

  4. Springboot 整合SpringSecurity实现账号密码+手机验证码登陆

    Springboot 整合SpringSecurity实现账号密码+手机验证码登陆 示例说明 版本 示例安装 Spring-security 介绍 为什么不用 shiro Spring-Securit ...

  5. springBoot配置文件设置mongodb连接密码加密

    springBoot配置文件设置mongodb连接密码加密 方案 实践 pom文件引入依赖 application.yml文件中定义加密的秘钥 定义main函数测试加解密 把加密后的密码放置到Mong ...

  6. SpringBoot+2次MD5登录密码加密+MyBatisPlus+Thymeleaf+Bootstrap简单实现登录功能,一文轻松搞定!

    这里写目录标题 一.演示GIF 二.开发前期准备 1.数据库 2.依赖POM.XML 3.idea结构目录 三.后端 1.实体类 2.mapper接口 3.mapper.xml 4.Servicce接 ...

  7. aliy 数据库连接池加密_Druid实现数据库连接用户密码加密 互联网技术圈 互联网技术圈...

    一.Druid号称是Java语言中最好的数据库连接池. 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问 ...

  8. springboot整合Jasypt对数据库密码进行加密

    Jasypt 的特点 1.高安全性.基于标准的加密技术,适用于单向和双向加密.加密密码.文本.数字.二进制文件 2.适合集成到基于 Spring 的应用程序中 3.用于加密应用程序(即数据源)配置的集 ...

  9. hikaripool连接保持_springboot2的hikari数据库连接池默认配置

    序 Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 spring-configuration ...

最新文章

  1. python 监控windows磁盘空间和备份大小
  2. 网站内链优化中有哪些常见的形式?
  3. Oracle-临时表空间(组)解读
  4. html嵌入excel_第5天 | 16天搞定前端,html布局,表格和大块头
  5. DNF NPK包名对照一览表
  6. sql 语句,主键外键详解
  7. 关于二进制补码+CS5463
  8. nodejs 连接数据库 并在数据库上进行增删改查操作
  9. 慧之声科技-2019云呼叫时代
  10. ★关于人类体质弱化的分析
  11. C语言——深度剖析数据在内存中的存储
  12. HazelEngine 学习记录 - Layers
  13. cocos2d-x精灵的放大和缩小
  14. 【Python】伪距单点定位
  15. 如何利用大数据软件进行家政服务的选址要素收集与分析
  16. 项目依赖包文件生成requirements.txt
  17. 04、Netty学习笔记—(黏包半包及协议设计解析)
  18. Java报错---Cannot refer to the non-final local variable user defined in an enclosing scope
  19. 企业营销的内容之痛,腾讯云SaaS工具的破局之道
  20. CH2-Android常见界面布局

热门文章

  1. java 压缩js css,java YUI压缩JS跟CSS
  2. 蓝凌ekp开发_新华教育集团战略升级,携手蓝凌量身定制数字化办公平台
  3. idea文件头信息设置
  4. php5.5 sqlserver 2012,PHP连接SQLSERVER2012
  5. oracle update 数据库恢复,ORACLE update 操作内部原理
  6. ipa文件怎么安装到iphone_无视签名随意安装 IPA 文件
  7. linux 脚本 获取当前目录,Linux下获取脚本当前工作目录的一点感触
  8. java 网络编程 聊天_Java——网络编程(实现基于命令行的多人聊天室)
  9. php root 启动,php-fpm如何以root身份启动
  10. python input函数赋值法_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...