springBoot配置文件加密

很多项目的配置文件里,包括数据库密码、缓存密码、还有一些第三方服务的Key都是直接配在里面,没有做任何加密处理!

本次我用SpringBoot 集成 Jasypt 对数据库加密以及踩坑经验

1.集成依赖,我用的是目前最新的版本3.0.4版本

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

2.配置

jasypt: encryptor: password: xx algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator

可以看到配置中特意配置了加密算法,原因是官方在 3.0.0 以后修改了加密算法,如果你不配置的话,就会报错,如图:

编辑

3.写个工具类进行加密

public class DecryptUtil { public static void main(String[] args) { BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); //加密所需的salt(盐) textEncryptor.setPassword("test"); //要加密的数据(数据库的用户名或密码) String password = textEncryptor.encrypt("123"); System.out.println("password:" + password); } }

4.数据库配置加密,用官方提供的保留字 ENC,将加密的密码包裹即可

datasource: # 使用druid数据源 type: com.alibaba.druid.pool.DruidDataSource dynamic: #主数据源 lazy: false primary: mysql strict: true datasource: #数据源1 mysql: url: jdbc:mysql://xx.xx.xx.xx/xxxx?useUnicode=true&characterEncoding=UTF-8&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8 username: zinger password: ENC(xx) driver-class-name: com.mysql.cj.jdbc.Driver

5.部署时配置salt(盐)值

我们将加密的密码放在了application.yml文件中,这样并不安全,如果查看代码就知道如何解密了。所以我采用另外一种形式来传递参数:在启动命令中传输密码。

编辑

java -Djasypt.encryptor.password=xx -jar xx.jar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248132.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用芯片学习——AMS1117芯片

AMS1117 1A 低压差线性稳压器 使用说明 AMS1117 是一款低压差线性稳压电路&#xff0c;该电路输出电流能力为1A。该系列电路包含固定输出电压版本和可调输出电压版本&#xff0c;其输出电压精度为士1.5%。为了保证芯片和电源系统的稳定性&#xff0c;XBLWAMS1117 内置热保护和…

语音生成、写作增强、论文辅助、英文学习,AI原生应用精彩推荐一箩筐!

崭新的2024年已然降临&#xff0c;飞桨星河社区再次涌现出诸多精彩纷呈的AI原生应用&#xff0c;快来一同探索&#xff0c;发现这些应用带来的无限惊喜与可能吧&#xff01; 语音生成&#xff1a;10音色自由选择 应用介绍 本应用基于ERNIE SDK和语音合成工具&#xff0c;可以…

树--二叉树(C语言纯手凹)

目录 目录 1.什么是树&#xff1f;&#xff08;不深入&#xff0c;仅做了解&#xff09; 2.树的表示方式 2.1孩子兄弟表示法&#xff08;左孩子右兄弟&#xff09; 2.2孩子表示法 2.3双亲表示法 3.什么是二叉树 4.二叉树分类 4.1满二叉树 4.2完全二叉树 4.3二叉搜索树…

获取鼠标点击图片时候的坐标,以及利用html 中的useMap 和area 实现图片固定位置的点击事件

一 编写原因 应项目要求&#xff0c;需要对图片的固定几个位置分别做一个点击事件&#xff0c;响应不同的操作&#xff0c;如下图&#xff0c;需要点击红色区域&#xff0c;弹出不同的提示框&#xff1a; 二 获取点击图片时候的坐标 1. 说明 实现这以上功能的前提是需要确定需…

for循坏

签名&#xff1a;但行好事&#xff0c;莫问前程。 文章目录 前言一、循坏的四要素二、for循环的格式三、for循坏的小练习1、打印1-100以内的偶数&#xff0c;并求和2、输出所有的水仙花数3、求两个数的最大公约数和最小公倍数3.1最大公约数3.2最小公倍数 4、双层for循坏打印九九…

linux安装python3.11

yum install gcc-c zlib-devel bzip2-devel openssl* ncurses-devel sqlite* readline-devel tk-devel gdbm-devel libpcap* xz-devel libffi-devel -y 下载地址 https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz 上传python文件&#xff0c;解压&#xff…

kubernetes-快速部署一套k8s集群

1、前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式&#xff1a; kubeadm Kubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。 二进制包 从github下载发行…

进程的执行过程

文章目录 前言一、进程的执行过程二、进程的示例2.1 示例1所有进程必须有限或者与时钟相关2.2 示例2多进程共享变量2.3 示例3仿真在0时刻结束2.4 示例4仿真变量保持不变 总结 前言 本文主要记录一下进程的执行过程&#xff0c;并通过一些例子&#xff0c;帮助进一步理解这个过…

活字格V9获取图片失败bug,报错404,了解存储路径,已改为批量上传和批量获取

项目场景&#xff1a; 问题描述 原因分析&#xff1a; 解决方案&#xff1a; 完成了批量上传功能&#xff0c;这插件真的很方便 于是写了个批量获取附件的js代码&#xff0c;我真厉害 项目场景&#xff1a; 活字格V9版本获取图片链接Upload 【9.0.103.0】图片上传的存储路…

境外投资企业备案结果公开名录列表数据

境外投资企业备案结果公开名录列表数据 1、时间&#xff1a;更新至2023年10月16日 2、指标&#xff1a;境外投资企业_机构、境内投资者名称、投资国别地区 3、来源&#xff1a;商务部 4、指标解释 境外投资企业&#xff08;机构&#xff09;备案结果公开名录列表&#xff…

USB-C显示器:未来显示技术的革新者

随着科技的不断发展&#xff0c;显示技术也在不断进步&#xff0c;而USB-C显示器作为最新的显示技术&#xff0c;正在引领着显示行业的发展潮流。USB-C显示器具有许多优点&#xff0c;如高速传输、便捷连接、节能环保等&#xff0c;使其成为未来显示技术的革新者。 一、USB-C显…

[PHP]严格类型

PHP: 类型声明 - Manual

部署YUM仓库服务

一、yum仓库 1. yum简介 yum是一个基于RPM包&#xff08;是Red-Hat Package Manager红帽软件包管理器的缩写&#xff09;构建的软件更新机制&#xff0c;能够自动解决软件包之间的依赖关系。 为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势&#xff0c;所以…

基于 Docker 搭建 Uptime-Kuma 一个极简风的应用监控

GitHub&#xff1a;https://github.com/louislam/uptime-kuma 一、uptime-kuma 介绍 Demo&#xff1a;https://uptime.wuhanjiayou.cn/ uptime-kuma 是一款开源的监控工具, 支持 TCP / PING / HTTP 等多种监控方式&#xff0c;可监测网站&#xff0c;数据库&#xff0c;Docker…

再学css

盒模型 有两种&#xff0c; IE盒子模型、W3C盒子模型&#xff1b;盒模型&#xff1a; 内容(content)、填充(padding)、边界(margin)、 边框(border)&#xff1b;区 别&#xff1a; IE的content部分把 border 和 padding计算了进去; 标准盒子模型的模型图 从上图可以看到&#x…

mysql注入联合查询

环境搭建 下载复现漏洞的包 下载小皮面板 将下载好的文件解压在小皮面板的phpstudy_pro\WWW路径下 将这个文件phpstudy_pro\WWW\sqli-labs-php7-master\sql-connections\db-creds.inc 中的密码更改为小皮面板中的密码 选择php版本 在小皮中启动nginx和数据库 使用环回地址访…

react中使用useEffcet抛出错误“超出最大更新深度”

目录 【项目中部分代码】&#xff1a; 【说明】&#xff1a; 【抛出错误】&#xff1a;“超出最大更新深度” 【造成原因】&#xff1a; 【例如&#xff1a;】 【解决】&#xff1a; 【项目中部分代码】&#xff1a; // 类组件中&#xff1a;一进页面就拿到要notiveType的…

H2数据库学习总结

H2数据库-简介 H2 是开源的轻量级Java数据库。它可以嵌入Java应用程序中或以客户端-服务器模式运行。 H2 数据库主要可以配置为作为内存数据库运行&#xff0c;这意味着数据将不会持久存储在磁盘上。 由于具有嵌入式数据库&#xff0c;因此它不用于生产开发&#xff0c;而主要…

《HTML 简易速速上手小册》第6章:HTML 语义与结构(2024 最新版)

文章目录 6.1 语义化标签的重要性6.1.1 基础知识6.1.2 案例 1&#xff1a;使用 <article>, <section>, <aside>, <header>, 和 <footer>6.1.3 案例 2&#xff1a;构建带有嵌套语义化标签的新闻网站6.1.4 案例 3&#xff1a;创建一个带有 <mai…

k8s 进阶实战笔记 | Pod 创建过程详解

Pod 创建过程详解 ​ 初始状态0 controller-manager、scheduler、kubelet组件通过 list-watch 机制与 api-server 通信并检查资源变化 第一步 用户通过 CLI 或者 WEB 端等方式向 api-server 发送创建资源的请求&#xff08;比如&#xff1a;我要创建一个replicaset资源&…