druid加密方式详解与配置
加密方式:
每次生成 私钥 公钥 加密后密码时,都会产生一对私钥和公钥。
// 调用 druid 生成私钥、公钥、密文,会在控制台输出,私钥、公钥、加密后密文。入参为未加密的明文密码
ConfigTools.main(new String[]{password});
privateKey私钥:自动生成,用于密码的加密。
//入参 (私钥,未加密的明文密码)
System.out.println(ConfigTools.encrypt(pr_KEY,password1));
publicKey公钥:自动生成,用于密码的解密。
//入参 (公钥,加密后的密文密码)
System.out.println(ConfigTools.decrypt(pu_KEY,password));
私钥与公钥是一对,解密时只需要在yml文件中配置,加密后的密码和公钥即可。
如果想用同一公钥解密,则必须使用对应的私钥加密,在yml文件中配置加密后密码。
如果想用同一公钥解密,个人需保存私钥,用于加密不同密码。在测试类调用加密方法即可。
如果不用同一公钥解密,则可以重新生成公钥、私钥、加密后密码。 需在yml文件中重新配置加密后密码,和解密使用的公钥。
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
# 是否开启数据库自动初始化
automaticInit: false
initConfig:
# 需要验证的表名,如果与现有版本不一致,则强制初始化
# 不包括 schema, 逗号分割
verifiedTables:
# 是否备份原库
backupOrigin: true
# 备份的数据库的后缀名(加备份的当前时间)
backupDBSuffix: _bak
```
druid:
# 主库数据源
master:
url: jdbc:postgresql://localhost:5432/databaseName
#数据库用户
username:
# 加密后密码
password:
connect-properties:
# 是否使用数据库密码加密
config.decrypt: true
# 数据库密码加密公钥
config.decrypt.key: