1.application.yml配置

 spring:
datasource:
jdbcUrl: jdbc:mysql://127.0.0.1:3306/jby?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: 'f687101570bae7ce4d313c2b4440f4ae'
#自动提交
auto-commit: true
#最小连接
minimum-idle: 100
#最大连接
maximum-pool-size: 200
#最大空闲时间
idle-timeout: 60000
#连接池名
pool-name: DatebookHikariCP
#最大生命周期
max-lifetime: 900000
#连接超时时间
connection-timeout: 15000
#心跳检测
connection-test-query: SELECT 'x' FROM DUAL

2. 构建UmspscDataSource类,继承HikariDataSource类

 @Slf4j
public class UmspscDataSource extends HikariDataSource {
private String passwordDis;
/**
* 密匙
*/
private final static String PKEY ="1234565437892132";
@Override
public String getPassword(){ if(StringUtils.isNotBlank(passwordDis)){return passwordDis;}
String encPassword = super.getPassword();
if(null==encPassword){
return null;
}
log.info("数据库密码加解密,{"+encPassword+"}");
try{
// 密文解密,解密方法可以修改
String key = HexUtil.encodeHexStr(PKEY);
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes());
passwordDis = aes.decryptStr(encPassword, CharsetUtil.CHARSET_UTF_8);
return passwordDis;
}catch (Exception e){
log.error("数据库密码解密出错,{"+encPassword+"}");
log.error(LogUtil.e(e));
throw new AppException("数据库密码解密失败!", e);
}
}
}

3.初始化DataSource类

 @Component
public class CommonBeanFactory { @Bean(name = "dataSource", autowire = Autowire.NO)
@Primary
@ConfigurationProperties(ignoreUnknownFields = false,prefix="spring.datasource")
public HikariDataSource dataSource() {
HikariDataSource druidDataSource = new UmspscDataSource();
return druidDataSource;
}
}

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

构建密文

 @Slf4j
public class Main { public static void main(String[] args) {
//明文
String content = "123456";
//密匙
String pkey = "1234565437892132";
log.info("密匙:" + pkey);
String key = HexUtil.encodeHexStr(pkey);
//构建
SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, key.getBytes()); //加密为16进制表示
String encryptHex = aes.encryptHex(content);
log.info("密文:" + encryptHex);
//解密为字符串
String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
log.info("明文:" + decryptStr);
}
}

最新文章

  1. visio二次开发——图纸解析之形状
  2. extjs之apply
  3. JAVA本地方法详解,什么是JAVA本地方法?
  4. htseq-count 的使用
  5. ubuntu 查看端口被占用并处理
  6. nginx 配置https 负载均衡
  7. CAN总线基础知识(二)
  8. 设计模式NO.3
  9. [矩形并-扫描线-线段树]Picture
  10. 在centos7 上安装Python3
  11. 也谈如何获取真实正确的 Windows 系统版本号
  12. Nginx 测试环境配置,留作笔记使用
  13. Reactnative——安装React Navigation后无法运行项目
  14. python + seleinum +phantomjs 设置headers和proxy代理
  15. Linux下的二进制兼容性的检测
  16. docker machine介绍和使用
  17. Rspec: everyday-rspec实操。FactoryBot预构件 (rspec-expectations gem 查看匹配器) 1-4章
  18. 脱离SVN的控制
  19. console在ie下不兼容的问题(console在ie9下阻碍页面的加载,打开页面一片空白)
  20. Linux防火墙简介 – iptables配置策略

热门文章

  1. vue,一路走来(16)--本地及手机调试
  2. 初学Java 彩票
  3. HIbernate 查询拼接参数
  4. 小程序之背景音乐——wx.backgroundAudioManager
  5. HTML5 canvas绘制图形
  6. hdu4336 Card Collector MinMax 容斥
  7. Java字符串流学习
  8. Hadoop的基础命令
  9. springboot+mybatis搭建web项目
  10. boost algorithm