ENCODE - shi-yuan/dynamic-datasource-spring-boot-starter GitHub Wiki

在实际使用中常常会有需求把敏感的连接信息加密.

如果你有使用Druid可使用其加密方法,详细请参考Druid集成章节.

本程序从V2.5.5开始内置加密方法,其核心也是直接拷贝Druid的核心加密源码.

支持url , username, password 的加密.

ENC(xxx) 中包裹的xxx即为使用加密方法后生成的字符串.

spring:
  datasource:
    dynamic:
      datasource:
        master:
          url: ENC(xxxxx)
          username: ENC(xxxxx)
          password: ENC(xxxxx)
          driver-class-name: com.mysql.jdbc.Driver

获得加密字符串

import com.baomidou.dynamic.datasource.toolkit.CryptoUtils;

public class Demo {

    public static void main(String[] args) throws Exception {
        String password = "123456";

        String encodePassword = CryptoUtils.encrypt(password);
        System.out.println(encodePassword);

        //自定义publicKey
        String[] arr = CryptoUtils.genKeyPair(512);
        System.out.println("privateKey:" + arr[0]);
        System.out.println("publicKey:" + arr[1]);
        System.out.println("password:" + CryptoUtils.encrypt(arr[0], password));
    }
}