数据库密码配置加密

Druid配置数据库密码加密 1) 命令行下加密 java -cp D:/druid-1.1.13.jar com.alibaba.druid.filter.config.ConfigTools 明文 执行之后会打印公钥,私钥和加密后的密码 2.修改druid的配置文件 增加: ... 阅读详情

📌为避免配置文件直接密码明文配置,可能存在泄漏,引入密文来加密明文密码

项目文件引入依赖

        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

找到对应加密jar对明文密码进行加密

例如密钥为test123

数据库密码为123456

进入jar包所在目录1,打开控制台,注意jar包版本号,这里使用的是1.9.2

加密密码使用java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=test123 algorithm=PBEWithMD5AndDES

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解密密码使用java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="KAxsns3B73FWeryPWVfpGg==" password=test123 algorithm=PBEWithMD5AndDES

在这里插入图片描述

项目配置文件修改

spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:postgresql://127.0.0.1:5432/postgres?currentSchema=public
    username: postgres
    password:  ENC(KAxsns3B73FWeryPWVfpGg==)

修改passwod处密码为上面输出的加密密码即可


密钥配置启动

方式一、直接在配置文件中配置

jasypt:
  encryptor:
    password: test123

这样配置密文简单粗暴,容易被暴露,原密码便可以被解密出来

方式二、启动参数配置

  • 本地项目增加如图配置项–jasypt.encryptor.password=test123
    在这里插入图片描述

  • 线上运行jar时,java -jar -Djasypt.encryptor.password=test123 project.jar

这样配置相比第一种不易暴露,但这些启动参数是可以通过查看进程信息,密文会明文显示出来,原密码便可以被解密出来

方式三、脚本启动时手动输入

思路:脚本启动服务时,手动输入密文,并保存到临时文件,springboot初始化时读取该密文到内存中,脚本再删除临时文件。

这种方式相对于前面两种,密文暴露的可能性就极低了,因为密文是直接保存在内存中的

脚本

#!/bin/bash

echo "please input jasypt.encryptor.password: "

read encryption

echo "${encryption}" > /tmp/encryption.tmp

nohup java -jar project.jar >/dev/null 2>&1 &

sleep 10

rm -rf /tmp/encryption.tmp

启动类

@SpringBootApplication
@EnableScheduling
public class MyDemoApplication {
    private static final String TMP_ENCRYPTION_PATH = "/tmp/encryption.tmp";
    private static final String JASYPT_ENCRYPTOR_PASSWORD = "jasypt.encryptor.password";

    public static void main(String[] args) throws Exception {
        SpringApplication app = new SpringApplication(MyDemoApplication.class);
        app.setDefaultProperties(
                MapUtil.of(
                        JASYPT_ENCRYPTOR_PASSWORD,
                        FileUtil.readLine(new RandomAccessFile(new File(TMP_ENCRYPTION_PATH), "r"), Charset.defaultCharset())
                )
        );
        app.run(args);
    }
}

  1. 全局搜索JasyptPBEStringEncryptionCLI类即可找到对应jar ↩︎

SpringBoot 项目配置数据库密码加密 使用密码加密工具类,生成加密后的字符串,配置到你的项目配置文件中,项目启动后,springboot项目会根据你写的解密方法去自行解密,从而链接到你的数据库。我们在写Springboot项目时候,配置文件中需要配置数据库连接,用户名和密码都是明文配置的。这样做很不安全,容易密码泄露。1、加密方案有好多种,下来介绍一种本人用的,比较简单的加密方法。 阅读详情

相关推荐

Druid数据库密码加密 包含单数据源密码加密,多数据源密码加密详细配置

详细说明单数据源和多数据源的具体配置,包括yml文件配置及相关代码

林 北的博客 2571

SpringBoot项目配置文件数据库用户名密码加密

在使用SpringBoot开发过程中,会将一些敏感信息配置到SpringBoot项目的配置文件中(),例如数据库的用户名和密码、Redis的密码等。为了保证敏感信息的安全,我们需要将此类数据进行加密配置。

欧阳啸天的专栏 6138

springboot配置文件数据库密码加密

使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。 jasypt由一个国外大神写了一个springboot下的工具包, 下面直接看代码: ...

蔡定努 1330

SpringBoot项目使用jasypt加解密的方法加密数据库密码

SpringBoot项目使用jasypt加解密的方法加密数据库密码

风水道人 1564

如何设计ADAS系统功能状态机(一)

状态机模块在自动驾驶系统中扮演着关键的角色,它负责管理和控制各个功能的状态转换和行为执行。今天我们来聊聊如何设计自动驾驶系统的状态机。

supass2018的博客 1617

Ollama内网离线部署大模型实战:从模型文件到私有化服务

本文详细介绍了如何在内网离线环境下,利用Ollama部署私有化大模型服务。内容涵盖从获取GGUF格式模型文件、手动安装Ollama、编写核心Modelfile配置文件,到创建运行模型、性能调优及安全加固的全流程实战指南,旨在帮助企业安全、可控地构建内部AI能力。

weixin_29209805的博客 215

springboot druid数据库配置密码加密

- 阿里数据库连接池 -->

zy08403的专栏 3228

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!

2303_79329831的博客 8万+

实现 MyBatis-Plus 中的配置加密功能(使用 AES 算法)

在项目开发过程中,为了增强数据安全性,我们常常需要对敏感信息进行加密处理。MyBatis-Plus 提供了方便的配置加密功能,使我们能够对配置文件中的敏感信息进行加密和解密操作。本文将详细介绍如何实现 MyBatis-Plus 中的配置加密功能,并给出相应的代码示例。

jakelihua 3376

基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置

ProxmoxVE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用kvm以及lxc技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。PVE虽然是开源,却是由一个商业公司在运营、更新以及维护。...

隔壁老瓦的专栏 6321

告别瞎猜!用通达信L2资金流向函数,手把手教你识别主力动向(附实战公式)

本文详细解析通达信L2资金流向函数,手把手教你构建主力动向监控系统。通过分档数据解析、委买委卖攻防解读及实战公式应用,帮助投资者精准识别主力建仓与虚假拉升信号,提升股票交易决策效率。

weixin_26908317的博客 2099

SpringBoot学习笔记之使用Druid为数据库密码加密

之前在项目的配置文件中看到关于数据库的配置,总觉得将数据库用户名和密码赤裸裸的展现他人面前非常不好。但是技术有限,见识有限,不知道该如何处理。同时所看到的项目都是这个样子的,所以觉得就这个样子吧。在集成Druid数据库连接池时,在官网文档中偶然发现可以在 SpringBoot 项目的配置文件中给数据库密码加密,正合心意。这次就记录一下整个实现过程。整个流程实践下来还是很简单的。就两个步骤:密码加密和配置参数。

蜗牛老师,专注编程领域 4943

【ros】ROS1的安装和相关使用方法

主要学习ros相关内容

Greary的博客 2379

数据库配置中对密码进行加密的方法

文章目录前言一、数据库密码加密1.配置数据库连接池2.生成RSA密钥3.对密码进行加密注 前言 由于Java项目的特殊性,打包后的项目如果没有做代码混淆,配置文件中的重要配置信息没有做加密处理的话,一旦打包的程序被反编译后,很容易获得这些敏感信息,进一步对项目或者系统造成一定的损害。所以,无论是公司层面还是开发者个人,都需要对项目的安全性有所重视。本次使用使用的数据库连接池是阿里开源的Druid 提示:以下是本篇文章正文内容 一、数据库密码加密 1.配置数据库连接池 代码如下,这里,我就简单地使用xm

weixin_44933443的博客 7699

基于Python的电商平台商品信息爬取与价格监控系统设计与实现

本文详细介绍了一个基于Python的电商平台商品信息爬取与价格监控系统的设计与实现。系统采用最新的Python爬虫技术栈,包括Scrapy框架、Selenium自动化测试工具、BeautifulSoup解析库等,实现了对主流电商平台商品信息的自动化采集、存储、分析和可视化展示。文章从系统架构设计、关键技术实现、核心代码解析等方面进行了全面阐述,并提供了完整的代码实现。该系统不仅适用于毕业设计,也可作为商业价格监控系统的原型。关键词:Python爬虫;电商数据采集;价格监控;Scrapy;Selenium;

2201_76125261的博客 964

人工智能算法面试大总结-总目录

涉及秋招、春招、社招

啥都生的博客 2万+

Spring配置数据库密码加密

    在项目中,为了提高安全性,需要对配置文件中的部分敏感信息进行加密,如数据库登录密码等。以下是一个简单的数据库密码加密示例,供大家一起学习交流,有不对或者需要改进的地方,请大家多多指教! 一. 未加密情况如下:    1. db配置文件   2. 加载配置文件,获取properties(主要看db.properties文件,redis和rabbitmq可以忽略)     3....

ffb920724的博客 4789

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringBoot配置文件数据库密码加密

引言 需求:springboot的配置文件中,把连接数据库的密码加密,使之不是以明文存储 步骤 导入Maven坐标 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> </dep

初阶农民工的博客 6741

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

springboot配置数据库密码加密

1、加入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> 2、到本地 jasypt 的jar包所在路径,打开cmd窗口 注意:j

和光同尘的博客 974

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

database.properties 数据没有密码怎么配置_使用Jasypt对SpringBoot配置文件加密

前言 在日前安全形势越来越严重的情况下,让我意识到在项目中存在一个我们经常忽略的漏洞,那就是我们的项目的配置文件中配置信息的安全,尤其是数据库连接的用户名和密码的安全。所以这里我们就需要对数据库的用户名和密码进行加密,这也是本文的由来。本文采用Jasypt对Spring Boot配置文件加密的相关方法,其实呢,也还有其他方案,具体的会在后面的相关文章中说明。 引入jasypt <...

weixin_29910561的博客 493

druid连接池配置数据库密码加密

druid配置数据库密码加密后,可以把密码放在配置文件里,或本地其他文件、远程服务器等三种地方,这里只讲第一种方法。 1.密码加密:cd到druid包所在文件夹打开命令行,输入java -cp druid-1.1.9.jar com.alibaba.druid.filter.config.ConfigTools you_password,得到加密后的密码,publicKey(privateKe...

weixin_39370859的博客 2201

配置文件中的数据库密码加密

数据库密码直接写在配置中,对运维安全来说,是一个很大的挑战。Druid为此提供一种数据库密码加密的手段ConfigFilter。 2.1 执行命令加密数据库密码 在命令行中执行如下命令: java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password 输出 privateKey:MIIBVgIB...

huangbaokang的博客 4209

springboot集成jasypt对数据库密码加密、配置文件敏感配置加密

1.pom.xml引入jar包 &lt;dependency&gt; &lt;groupId&gt;com.github.ulisesbocchio&lt;/groupId&gt; &lt;artifactId&gt;jasypt-spring-boot-starter&lt;/artifactId&gt; &lt;version&gt;2.0.0&lt;/versio...

qq_22338401的博客 1003

【springcloud】springcloud nacos加密配置中心的配置数据库用户密码

springcloud配置文件属性加密

阿来小同学的博客 1万+
上一篇: 五、RabbitMQ消息投递案例
下一篇: JWT登录的简单案例
strap
博客等级 码龄3年 60粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值