700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > druid数据库密码加密

druid数据库密码加密

时间:2022-01-09 09:45:37

相关推荐

druid数据库密码加密

druid 配置数据库密码加密

一、springboot 使用密码加密

1.1 引入maven依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency>

1.2 获取加密密码

打开引入依赖的所在位置

1.3 在当前目录打开dos窗口

1.4 使用命令生成加密密码&密钥(两种命令二选一,推荐命令2方便后面复制使用)

命令1:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码

直接把密钥打印在dos窗口

命令2:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码 > pwd.txt

生成一个文件在当前目录下

1.6生成的文件

1.5 配置文件数据库连接

springboot有两种常用的配置文件,使用哪一种都OK

配置文件 public-key 对应 publicKey

配置文件password 对应 password

applicateion.properties

spring.datasource.url=jdbc:mysql://localhost:3306/db_jpa?serverTimezone=UTCspring.datasource.username=root# 生成的加密后的密码spring.datasource.password=MjJJ2fhGNs6cZtnpFrkEeSvmRjQIQE50MQXNRViz9RE60Ga/YzQjXrEiO65CDx1wbRPAtYDj29O3tWwu9+8aDw==# 生成的公钥public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKiUxZbptPIvD3c5fxkuqUP/M9HrzWJtaYgbiH2vBHI4Td4DJNd3zJbCY0kxbUiSGGR2V0lwJ7a0ZVaqHPiHPNcCAwEAAQ==# 配置 connection-properties,启用加密,配置公钥。spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}# 启用ConfigFilterspring.datasource.druid.filter.config.enabled=true

注意:spring.datasource.druid.filter.config.enabled=true 不配置就会出错

application.yaml

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverdruid:url: jdbc:mysql://127.0.0.1:3306/db_jpa?serverTimezone=UTCusername: rootpassword: MjJJ2fhGNs6cZtnpFrkEeSvmRjQIQE50MQXNRViz9RE60Ga/YzQjXrEiO65CDx1wbRPAtYDj29O3tWwu9+8aDw==connection-properties: config.decrypt=true;config.decrypt.key=${public-key}filter:config:enabled: truepublic-Key: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKiUxZbptPIvD3c5fxkuqUP/M9HrzWJtaYgbiH2vBHI4Td4DJNd3zJbCY0kxbUiSGGR2V0lwJ7a0ZVaqHPiHPNcCAwEAAQ==# 连接 mysql 数据库配置# datasource:# url: jdbc:mysql://127.0.0.1:3306/db_jpa# username: root# password: Pass1234# driver-class-name: com.mysql.cj.jdbc.Driver# type: com.alibaba.druid.pool.DruidDataSource# 驱动配置信息# spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# spring.datasource.url = jdbc:mysql://127.0.0.1:3306/myspringboot# spring.datasource.username = your account# spring.datasource.password = your encryt password# spring.datasource.driverClassName = com.mysql.jdbc.Driver # 连接池的配置信息 # 初始化大小,最小,最大# spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置获取连接等待超时的时间# spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒# spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒# spring.datasource.minEvictableIdleTimeMillis=300000# spring.datasource.validationQuery=SELECT 1 FROM DUAL# spring.datasource.testWhileIdle=true# spring.datasource.testOnBorrow=false# spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小# spring.datasource.poolPreparedStatements=true# spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙# spring.datasource.filters=config,stat,wall,log4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录# spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrpt=true;config.decrypt.key=your public key

注意:

filter:

config:

enabled: true

不开起会报错

二、MVC 使用密码加密(非maven项目,maven项目获取加密密码依照springboot的方式)

2.1 下载 druid.jar 下载地址

2.2 找到下载好的目录打开dos窗口

2.3 使用命令生成加密密码&密钥(两种命令二选一,推荐命令2方便后面复制使用)

命令1:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码

直接把密钥打印在dos窗口

命令2:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码 > pwd.txt

生成一个文件在当前目录下

2.4编写xml文件

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property><property name="url" value="jdbc:oracle:thin:@**.***.**.***:1521/****"></property><property name="username" value="****"></property><property name="password"value="JXnxfjL78rQP3txJL295FucpV4aslSehNT9yhJypHemLcNu/yrRfzZTnKiP+4BjKqPtUzw5tW8iWBNGDeUEYsQ=="></property><property name="filters" value="config" /><property name="connectionProperties"value="config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKI6dkcdjT8wFLh6fk4D/Vp6Pub5oxhv34zQtgVGaM/KXD3dLkXtP/F0y2pDsLKDa7gocsuxzOrOIUuyVaovkBECAwEAAQ=="/></bean>

密钥配置在name=“connectionProperties” value="config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKI6dkcdjT8wFLh6fk4D/Vp6Pub5oxhv34zQtgVGaM/KXD3dLkXtP/F0y2pDsLKDa7gocsuxzOrOIUuyVaovkBECAwEAAQ=="

**config.decrypt=true;config.decrypt.key=**一定要写,要不绝壁报错,被坑过

上面这些都是直接配置在项目代码里的,这样的加密配置起始作用并不高,别人还是可以看到加密后的密码&密钥,安全程度并不高,大多上线后的项目密码都是配置在服务器上的,比如使用tomcat的数据源配置,使用jndi去连接就ok了。

三、使用jndi连接tomcat加密数据源

tomcat一般在linux服务器上部署,在tomcat的config目录下的context.xml文件中配置数据源

3.1 下载druid.jar

下载地址

3.2 把druid.jar包放入tomcat中的lib目录下一份

3.2 生成密钥

命令1:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码

命令2:java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools 密码 > pwd.txt

生成一个文件在当前目录下

3.3 编写context.xml文件

tomcat/config/context.xml

<?xml version="1.0" encoding="UTF-8"?><Context><Resource name="jdbc/oracledb"factory="com.alibaba.druid.pool.DruidDataSourceFactory"auth="Container"type="javax.sql.DataSource"url="jdbc:oracle:thin:@**.***.***.***:1521/****"driverClassName ="oracle.jdbc.driver.OracleDriver"username="***"password="JXnxfjL78rQP3txJL295FucpV4aslSehNT9yhJypHemLcNu/yrRfzZTnKiP+4BjKqPtUzw5tW8iWBNGDeUEYsQ=="initialSize = "30"maxActive="200"minIdle="30"maxWait="-1"testOnBorrow="true"validationQuery="select 1 from dual"connectionProperties = "config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKI6dkcdjT8wFLh6fk4D/Vp6Pub5oxhv34zQtgVGaM/KXD3dLkXtP/F0y2pDsLKDa7gocsuxzOrOIUuyVaovkBECAwEAAQ==" filters= "config,stat,wall"/></Context>

connectionProperties = “config.decrypt=true;config.decrypt.key={生成的公钥}”

这个一定要写完整,不然坑死你,咋启动都失败

3.4项目引用

web.xml

<!-- 连接数据库配置 --><resource-ref><description>Datasource</description><res-ref-name>jdbc/oracledb</res-ref-name> <!--context中设置的连接池的名字 --><res-type>javax.sql.DataSource</res-type><!--context中导入的类 --><res-auth>Container</res-auth><!-- 默认是容器,Tomcat--></resource-ref>

datasources.xml

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><value>jdbc/oracledb</value></property><property name="resourceRef"><value>true</value></property></bean>

注意 jndiName&res-ref-name 对应的是 tomcat 中context.xml中的name名称,名字不能写错了,写错绝壁失败

使用jndi连接数据库如果不想使用加密的密码,在配置context.xml的时候就不用写connectionProperties这个配置,password换成没有被加密的密码就可以了

springboot使用的是mysql数据库,mvc使用的是oracle数据库

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。