本文中介绍的是基于Sharding-JDBC 4.0和jasypt 3.0及其以上版本对数据库连接密码进行加密操作

引入依赖

项目的pom.xml中引入maven依赖

<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC3</version>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>

生成密文

首先通过jasypt-1.9.3.jar生成密文

PS C:\Users\Tuhuadmin\.m2\repository\org\jasypt\jasypt\1.9.3>  java -cp .\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=fulfillForward algorithm=PBEWithMD5AndDES

命令行下执行该命令,打印如下

----ENVIRONMENT-----------------

Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 11.0.2+7-LTS

----ARGUMENTS-------------------

input: root
password: fulfillForward
algorithm: PBEWithMD5AndDES ----OUTPUT---------------------- 9v+20XzVBiBBocheB7PWwA==

OUTPUT打印的部分就是加密后的密文。

jasypt需要设置用于加密明文的密钥password,它会对input内容加密。解释下参数:

参数 说明

input

明文密码
password 加密的盐值
algorithm 加密策略,对称加密

配置文件中设置密文

上一步中获得到了连接数据库的密码密文,打开应用的配置文件application.properties,修改数据库连接密码为如下格式:

spring.shardingsphere.datasource.ds0.password=ENC(9v+20XzVBiBBocheB7PWwA==)

通过 ENC(密文) 的方式,在程序中获取到的spring.shardingsphere.datasource.ds0.password会自动转换成明文内容(root)

同时需在配置文件application.properties中添加加密盐值和加密策略

jasypt.encryptor.password=fulfillForward
jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator

到此通过Sharding-JDBC做分库分表,数据库连接密码加密就完成了。

参考连接

https://github.com/ulisesbocchio/jasypt-spring-boot#update-11242019-version-300-release-includes

如有问题可微信咨询,微信号:429532901

最新文章

  1. java学习之面向对象(2)
  2. 如果空间不够的话,iOS发生这样的错误
  3. LSMW批处理工具操作手册
  4. 团队作业Week5之团队贡献分的分配
  5. Android zxing连续扫描
  6. 【疯狂Java讲义学习笔记】【数据类型与运算符】
  7. Ubuntu adb devices 出现??? no permissions 的解决方法
  8. css-ie6下实现最小,最大宽度
  9. 初识Ubuntu
  10. 二叉树遍历(flist)(二叉树,已知中序层序,求先序)
  11. 堆栈的应用——用JavaScript描述数据结构
  12. 在linux系统中实现各项监控的关键技术(2)--内核态与用户态进程之间的通信netlink
  13. 大型Vuex应用程序的目录结构
  14. Ubuntu下orbbec mini 无法正常显示图像问题
  15. Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
  16. java提取url里的域名
  17. 20145335郝昊《网络攻防》Exp9 Web安全基础实践
  18. c# 在WebBrowser中用SendMessage模拟鼠标点击
  19. 【转载】iPhone系统概览
  20. redhad linux 7 安装ftp服务

热门文章

  1. mac实用软件推荐 mac好用的软件
  2. 15.java设计模式之访问者模式
  3. 使用logisim搭建单周期CPU与添加指令
  4. python核心高级学习总结2----------pdb的调试
  5. 关于javaSMTP协议发邮件你必须知道的知识点
  6. flask注册蓝图报错
  7. 《Eroico》关卡与操作设计
  8. 懒松鼠Flink-Boot(Flink+Spring):一款将Flink与Spring生态完美融合的脚手架工程
  9. 使用 swagger 加注解 有的方法显示 有的不显示
  10. WPF源代码分析系列一:剖析WPF模板机制的内部实现(一)