mysql数据库druid密码加密_使用Druid生成加密密码,实现mysql数据库链接用户密码加密解密...

本文介绍了如何使用Druid的ConfigFilter来实现MySQL数据库密码的加密和解密,包括通过命令行加密密码、配置数据源解密密码以及Spring中数据库链接的加密配置。DruidDataSource支持从本地或远程http服务器读取配置,并提供了数据库密码加密的解决方案,增强了运维安全性。
摘要由CSDN通过智能技术生成

参考 :Druid官网https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilterjava

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------mysql

ConfigFilter的做用包括:

从配置文件中读取配置

从远程http文件中读取配置

为数据库密码提供加密功能

1 配置ConfigFilter

1.1 配置文件从本地文件系统中读取

init-method="init" destroy-method="close">

1.2 配置文件从远程http服务器中读取

init-method="init" destroy-method="close">

这种配置方式,使得一个应用集群中,多个实例能够从同一个地方读取配置,集中配置,集中修改,部署更简单。

1.3 经过jvm启动参数来使用ConfigFilter

DruidDataSource支持jvm启动参数配置filters,因此你能够:

java -Ddruid.filters=config ....

2 数据库密码加密

数据库密码直接写在配置中,对运维安全来讲,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter。

2.1 执行命令加密数据库密码

在命令行中执行以下命令:

java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password

输出

privateKey:MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEA6+4avFnQKP+O7bu5YnxWoOZjv3no4aFV558HTPDoXs6EGD0HP7RzzhGPOKmpLQ1BbA5viSht+aDdaxXp6SvtMQIDAQABAkAeQt4fBo4SlCTrDUcMANLDtIlax/I87oqsONOg5M2JS0jNSbZuAXDv7/YEGEtMKuIESBZh7pvVG8FV531/fyOZAiEA+POkE+QwVbUfGyeugR6IGvnt4yeOwkC3bUoATScsN98CIQDynBXC8YngDNwZ62QPX+ONpqCel6g8NO9VKC+ETaS87wIhAKRouxZL38PqfqV/WlZ5ZGd0YS9gA360IK8zbOmHEkO/AiEAsES3iuvzQNYXFL3x9Tm2GzT1fkSx9wx+12BbJcVD7AECIQCD3Tv9S+AgRhQoNcuaSDNluVrL/B/wOmJRLqaOVJLQGg==

publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOvuGrxZ0Cj/ju27uWJ8VqDmY7956OGhVeefB0zw6F7OhBg9Bz+0c84RjzipqS0NQWwOb4kobfmg3WsV6ekr7TECAwEAAQ==

password:PNak4Yui0+2Ft6JSoKBsgNPl+A033rdLhFw+L0np1o+HDRrCo9VkCuiiXviEMYwUgpHZUFxb2FpE0YmSguuRww==

输入你的数据库密码,输出的是加密后的结果。

2.2 配置数据源,提示Druid数据源须要对数据库密码进行解密。

init-method="init" destroy-method="close">

2.3 配置参数,让ConfigFilter解密密码

有三种方式配置:

1) 能够在配置文件my.properties中指定config.decrypt=true

2) 也能够在DruidDataSource的ConnectionProperties中指定config.decrypt=true

3) 也能够在jvm启动参数中指定-Ddruid.config.decrypt=truegit

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------github

jar包版本:druid-1.0.13.jarspring

1. 加密,用如下命令将用户名和密码加密sql

cmd命令行执行java -cp D:/druid-1.0.13.jar com.alibaba.druid.filter.config.ConfigTools用户名/密码数据库

获得密文:安全

f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==服务器

2.用户名解密:运维

ackage com.heli.core.user.common;

import com.alibaba.druid.filter.config.ConfigTools;

import com.alibaba.druid.pool.DruidDataSource;

/**

* 用来解密配置中的密文(重点配置,在这里扩展用户名的解密)

* setUsername(name) 方法对应xml中的一个property属性,password默认加密不须要重写,

* 还能够加密url 重写setUrl(url)

*/

@SuppressWarnings("all")

public class DecryptDruidSource extends DruidDataSource{

@Override

public void setUsername(String username) {

try {

username = ConfigTools.decrypt(username);

} catch (Exception e) {

e.printStackTrace();

}

super.setUsername(username);

}

}

3.spring-database.xml中数据库链接的配置

4.数据库配置文件:

3.user.properties中

#mysql

username=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==

password=f0PSl0Lzxh6CxzuFIdEg+wVx045fSE2VtUP45G9HH2cjVQnmGGgcK5CLzNUJoR6tGwRO44h74OxrBWuDzWC8jg==

url=jdbc:mysql://192.168.1.194/user?characterEncoding=utf-8

driver=com.mysql.jdbc.Driver

initialSize=5

minIdle=5

maxActive=20

maxWait=60000

timeBetweenEvictionRunsMillis=60000

minEvictableIdleTimeMillis=30000

validationQuery=SELECT 1

testWhileIdle=true

testOnBorrow=true

testOnReturn=true

filters=stat,log4j

removeAbandoned=true

removeAbandonedTimeout=1200

logAbandoned=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值