druid加密方式详解与配置

859 阅读1分钟

druid加密方式详解与配置

加密方式:

每次生成 私钥 公钥 加密后密码时,都会产生一对私钥和公钥。

// 调用 druid 生成私钥、公钥、密文,会在控制台输出,私钥、公钥、加密后密文。入参为未加密的明文密码
     ConfigTools.main(new String[]{password});

image.png

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: