知乎专栏 |
pom.xml
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency>
application.properties
spring.jpa.database=MYSQL spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #驱动配置信息 spring.datasource.driver-class-name=com.mysql.jdbc.Driver #基本连接信息 spring.datasource.username = root spring.datasource.password = root spring.datasource.url=jdbc:mysql://192.168.153.23:3306/mytest?useUnicode=true&characterEncoding=utf-8 #连接池属性 spring.datasource.druid.initial-size=15 spring.datasource.druid.max-active=100 spring.datasource.druid.min-idle=15 spring.datasource.druid.max-wait=60000 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.test-while-idle=true spring.datasource.druid.validation-query=SELECT 1 spring.datasource.druid.validation-query-timeout=1000 spring.datasource.druid.keep-alive=true spring.datasource.druid.remove-abandoned=true spring.datasource.druid.remove-abandoned-timeout=180 spring.datasource.druid.log-abandoned=true spring.datasource.druid.pool-prepared-statements=true spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20 spring.datasource.druid.filters=stat,wall,slf4j spring.datasource.druid.use-global-data-source-stat=true spring.datasource.druid.preparedStatement=true spring.datasource.druid.maxOpenPreparedStatements=100 spring.datasource.druid.connect-properties.mergeSql=true spring.datasource.druid.connect-properties.slowSqlMillis=5000
创建私钥、公钥和密码
neo@MacBook-Pro-Neo ~ % java -cp ~/.m2/repository/com/alibaba/druid/1.2.6/druid-1.2.6.jar com.alibaba.druid.filter.config.ConfigTools you_password privateKey:MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA0dcAPh18Jqob83AdY9SeO1mP1UOvivoDenH7nHOXk2ti5B4Q5A/6MYLnbLANHLTFACJe7+4ZaFK0qbzixdIqkQIDAQABAkAA9YbRjIczcootlPTkw/VOr7hmc5h0bfOGM7SVk2+Ci8RFHtzQw9MGHvOCX3NHYA6fqmT4oer/z+GljuF4YeqZAiEA/N6Jvw1Wxq8EC+4EpRsjCg1eYbOV2kYYBKip0lfDzVkCIQDUcBURmKSDpLPOE+jq4SBZXV3HTJs5IfmgtTzGWZIH+QIhAOVTQOMGSttXH7ld+9JsgON96kl6330bsm6PM6vyMj3JAiAUvgjgmfXeQLOpuHnyjR66ewpQDmPNlUqpbWjMuSwwCQIgSEXSKgW+Fd2aIjB6TrXjUTRsJy3B7OwB3Jfdu4GSioc= publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANHXAD4dfCaqG/NwHWPUnjtZj9VDr4r6A3px+5xzl5NrYuQeEOQP+jGC52ywDRy0xQAiXu/uGWhStKm84sXSKpECAwEAAQ== password:BMxzWjQmHsQwzNmWPPBn94Vdz8Czi6fDIOHJcqXBGzkAiKsI5cb2NMa/wtmZY2AEXinaivtiJvqYMwWUPVzRYg==
spring.datasource.name=druidDataSource spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true #---------密码加密------------------------ spring.datasource.username=netkiller spring.datasource.password=BMxzWjQmHsQwzNmWPPBn94Vdz8Czi6fDIOHJcqXBGzkAiKsI5cb2NMa/wtmZY2AEXinaivtiJvqYMwWUPVzRYg== #---------启用ConfigFilter支持----------- spring.datasource.druid.filter.config.enabled=true #---------设置公钥------------------------ spring.datasource.druid.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANHXAD4dfCaqG/NwHWPUnjtZj9VDr4r6A3px+5xzl5NrYuQeEOQP+jGC52ywDRy0xQAiXu/uGWhStKm84sXSKpECAwEAAQ== #---------设置连接属性--------------------- spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${spring.datasource.druid.publicKey}
@RunWith(SpringRunner.class) @SpringBootTest public class ApplicationTests { @Test public void druidEncrypt() throws Exception { //密码明文 String password = "123456"; String[] keyPair = ConfigTools.genKeyPair(512); //私钥 String privateKey = keyPair[0]; //公钥 String publicKey = keyPair[1]; //用私钥加密后的密文 password = ConfigTools.encrypt(privateKey, password); System.out.println("privateKey:" + privateKey); System.out.println("publicKey:" + publicKey); System.out.println("password:" + password); //用公钥解密密码 String decryptPassword = ConfigTools.decrypt(publicKey, password); System.out.println("解密后:" + decryptPassword); } }