首页 > 数据库 >druid实现数据库密码加密功能

druid实现数据库密码加密功能

时间:2023-12-31 21:33:46浏览次数:46  
标签:加密 数据库 druid 密码 password config

数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战。可以使用Druid为此提供一种数据库密码加密的手段ConfigFilter。
如果项目已经集成druid,只需按要求配置即可。

1、执行命令加密数据库密码

找到druid-1.2.20.jar所在的文件夹目录,执行cmd命令,然后执行下面的命令生成数据库密码的密文和秘钥对。

java -cp druid-1.2.20.jar com.alibaba.druid.filter.config.ConfigTools 数据库密码

命令最后的参数一定要输入你的数据库密码,版本号视情况而定,我们这边使用的是druid-1.2.20版本。
命令输出的是加密后的结果,主要关注publicKey和password。

2、配置数据源

2.1、password属性修改成加密结果里的password值,即数据库密码的密文。
password: KWddMcILCrnt6GXmhct33cgL+paOLt7TE0c2DIzEhQi3/MP+2ke2LfbHfgpvccP2AUX8GgzCl4iMNF4o/yypQg==
2.2、启用过滤器configFilter
filter:
    config:
      # 启用过滤器configFilter,config下面只有enabled一个属性
      enabled: true      
2.3、配置config下面相关属性

config.decrypt为加解密开关
config.decrypt.key为解密公钥

connection-properties: config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKOAuSzGYufWFSDIpd3A5Mmv1UxAhcNT5hUCl8RLxtSXR+3H5r4T26OD+99VqPyF+EqwDJptmJZz4sDcK7fvANsCAwEAAQ==
2.3、启动应用程序测试验证加密结果

如若忘记密码可以使用工具类解密(传入生成的公钥+密码)

    public static void main(String[] args) throws Exception {
        String password = ConfigTools.decrypt(
                "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKOAuSzGYufWFSDIpd3A5Mmv1UxAhcNT5hUCl8RLxtSXR+3H5r4T26OD+99VqPyF+EqwDJptmJZz4sDcK7fvANsCAwEAAQ==",
                "KWddMcILCrnt6GXmhct33cgL+paOLt7TE0c2DIzEhQi3/MP+2ke2LfbHfgpvccP2AUX8GgzCl4iMNF4o/yypQg==");
        System.out.println("解密密码:" + password);
    }

标签:加密,数据库,druid,密码,password,config
From: https://www.cnblogs.com/shigzh/p/17937994

相关文章

  • 数据库超线程效果的一个验证
    数据库超线程效果的一个验证背景元旦加班期间,一直跟着同事再查一个项目的卡顿问题.自己想到了一个提高测试环境性能的方法.然后趁着元旦用的人少进行了一下验证.在业务空闲期间,批量进行Oracle数据库的统计信息更新动作.自己一开始担心的是如果数据量很大,执行时......
  • 前端歌谣-第陆拾玖课-MongoDB之node操作实现数据库增删改查
    前言大家好我是歌谣今天给大家带来的是MongoDB关于node操作数据库的讲解依赖配置需要安装express-genetator脚手架创建项目配置文件{"name":"myapp","version":"0.0.0","private":true,"scripts":{"start":"node./bin/w......
  • Oracle数据库统计信息_执行计划_sharedpool等的知识梳理
    Oracle数据库统计信息_执行计划_sharedpool等的知识梳理背景最近有项目出现了年底业务量增加时卡顿的情况.同事多次发现执行SQL缓慢.但是重新执行统计信息更新后问题就优化的现象.12月份上半月解决测试环境的SQLServer卡顿时基本上也是这个套路重建索引,添加必要索引的方......
  • HBase 与 NoSQL 数据库对比:了解 HBase 在大数据领域的优势
    1.背景介绍HBase是一个分布式、可扩展、高性能的列式存储数据库,它是ApacheHadoop项目的一部分。HBase设计用于存储海量数据并提供低延迟、自动分区、数据备份和恢复等特性。HBase是一个NoSQL数据库,它与其他NoSQL数据库如Cassandra、MongoDB等有一定的相似性,但也有一些......
  • 向量内积在图数据库中的应用
    1.背景介绍图数据库(GraphDatabase)是一种特殊类型的数据库,它使用图形数据结构(GraphDataStructure)来存储、管理和查询数据。图数据库的核心概念是节点(Node)和边(Edge),节点表示数据实体,边表示关系。图数据库广泛应用于社交网络、知识图谱、地理信息系统等领域。向量内积(DotProduct)是......
  • openGauss学习笔记-179 openGauss 数据库运维-逻辑复制-发布订阅
    openGauss学习笔记-179openGauss数据库运维-逻辑复制-发布订阅发布和订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据......
  • openGauss学习笔记-180 openGauss 数据库运维-升级-升级前必读
    openGauss学习笔记-180openGauss数据库运维-升级-升级前必读180.1升级方案本节为指导用户选择升级方式。用户根据openGauss提供的新特性和数据库现状,确定是否对现有系统进行升级。当前支持的升级模式为就地升级、灰度升级和滚动升级。升级方式的策略又分为大版本升级和小版......
  • JS加密,python解密
    `//jsAES加密varCryptoJs=require("crypto-js")//密钥(128位,16字节)varkey=CryptoJs.enc.Utf8.parse("1234567890abcdef");//直接打印为words数组,可用如下方法进行还原//console.log(CryptoJs.enc.Utf8.stringify(key))//初始化向量(128位,16字节)variv=Crypto......
  • DES加密算法优缺点大揭秘:为何它逐渐被取代?
    一、引言DES(DataEncryptionStandard)加密算法作为一种历史悠久的对称加密算法,自1972年由美国国家标准局(NBS)发布以来,广泛应用于各种数据安全场景。本文将从算法原理、优缺点及替代方案等方面,对DES加密算法进行全面解析。DES加密解密|一个覆盖广泛主题工具的高效在线平台(......
  • 数据库查询,按年月排序,计算每月、当年每月有几条数据
    数据库查询,按年月排序,计算每月有几条数据  数据库查询,按年月排序,计算当年每月有几条数据SELECTDATE_FORMAT(inspection_date,'%Y-%m')ASDATETIME,count(*)ASnumFROMgw_inspection_datat1WHEREYEAR(inspection_date)=YEAR(CURDATE())GROUPBY......