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