【SpringBoot】 jasypt配置文件密码加解密

目前我们对yml配置文件中的密码都是明文显示,显然这不安全,有的程序员离职了以后可能会做一些非法骚操作,所以我们最好要做一个加密,只能让领导架构师或者技术经理知道这个密码。所以这节课就需要来实现一下。

我们可以使用jasypt来实现密码加密的机制

common工程添加依赖:

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

创建一个test类

@SpringBootTest
public class JasyptTest {@Testpublic void testPwdEncrypt() {// 实例化加密器StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();// 配置加密算法和秘钥EnvironmentPBEConfig config = new EnvironmentPBEConfig();config.setAlgorithm("PBEWithMD5AndDES");    // 设置加密算法,默认的config.setPassword("fengjianyingyue");      // 用于加密的秘钥(盐),可以是随机字符串,一定要记住并且存储好encryptor.setConfig(config);// 对自己的密码进行加密String myPwd = "imooc";String encryptedPwd = encryptor.encrypt(myPwd);System.out.println("++++++++++++++++++++++++++++++");System.out.println("+ 原密码为:" + myPwd);System.out.println("+ 加密后的密码为:" + encryptedPwd);System.out.println("++++++++++++++++++++++++++++++");// 备注:此方式也可以用于账号密码登录的加盐操作}//    bg4mklHlRGmEUrhSr2hoCA==
//    EkSpYxuOam5DntjuV/0K3w==
//    PGUSPogsj7txKyfrjwr8lA==@Testpublic void testPwdDecrypt() {// 实例化加密器StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();// 配置加密算法和秘钥EnvironmentPBEConfig config = new EnvironmentPBEConfig();config.setAlgorithm("PBEWithMD5AndDES");    // 设置加密算法,默认的config.setPassword("fengjianyingyue");      // 用于加密的秘钥(盐),可以是随机字符串,一定要记住并且存储好encryptor.setConfig(config);String pendingPwd = "EkSpYxuOam5DntjuV/0K3w==";String myPwd = encryptor.decrypt(pendingPwd);System.out.println("++++++++++++++++++++++++++++++");System.out.println("+ 解密后的密码为:" + myPwd);System.out.println("++++++++++++++++++++++++++++++");}
}

运行结果可以看到,每次运行获得的加密密码都是不一样的。但是没关系,解密的话都是可以的。只要有秘钥,就能解密。

yml配置:

运行测试结果消息队列能否消费。

加上ENC()作为jasypt唯一识别

作业

  1. 把jasypt作为加盐的第二种方式,提供给MD5Utils作为第二种加密方式
  2. 使用nacos配置jasypt秘钥

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

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

相关文章

爬虫学习3:爬虫的深度爬取

爬虫的深度爬取和爬取视频的方式 深度爬取豆瓣读书 import time import fake_useragent import requests from lxml import etree head {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 …

陶德:边种田边写代码,3年300万行,一个人写出了“国产大满贯QT”

这是《开发者说》的第12期&#xff0c;本期我们邀请的开发者是陶德&#xff0c;从小在国企矿山里长大&#xff0c;计算机成绩是文科班里最差的一个&#xff0c;毕业两年找不到工作&#xff0c;睡过公园&#xff0c;讨过剩饭&#xff0c;用打魔兽世界的方式磨炼技术&#xff0c;…

.NET 8+Vue2 部署到Window Server

.NET 8Vue2 部署到Window Server 1 配置环境 1.1 下载安装.NET 8 SDK&#xff0c;下载时需注意目标服务器的系统类型&#xff08;64位 or 32位&#xff09; https://dotnet.microsoft.com/zh-cn/download 1.2 下载安装SQL Server数据库&#xff08;服务和管理工具&#xff…

海外短剧系统搭建开发定制,H5/APP源码搭建部署,支持二开

目录 前言&#xff1a; 一、系统功能 二、部署流程 前言&#xff1a; 海外短剧系统搭建部署&#xff0c;前端uniapp&#xff0c;PHP语言。支持二开功能。 一、系统功能 以下是改写后的内容&#xff1a; 1. 多语言环境集成 —— 提供一键式翻译功能&#xff0c;轻松切换多…

【Vue3】计算属性

【Vue3】计算属性 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文内…

IT common sense常识

how to input formative json data in console console.log({"message": [{"cat_id": 1,"cat_name": "大家电","cat_pid": 0,"cat_level": 0,"cat_deleted": false,,,,})2) how to clear unecessary c…

基于生物地理算法的MLP多层感知机优化matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 生物地理算法&#xff08;BBO&#xff09;原理 4.2 多层感知机&#xff08;MLP&#xff09; 4.3 BBO优化MLP参数 5.完整程序 1.程序功能描述 基于生物地理算法的MLP多层感知机优化mat…

【数学建模】——前沿图与网络模型:新时代算法解析与应用

目录 1.图与网络的基本概念 1. 无向图和有向图 2. 简单图、完全图、赋权图 3. 顶点的度 4. 子图与图的连通性 2.图的矩阵表示 1. 关联矩阵 2. 邻接矩阵 3.最短路问题 1.Dijkstra 算法 2.Floyd 算法 4.最小生成树问题 1.Kruskal 算法 2.Prim 算法 5.着色问题 6.…

[Linux]Mysql之主从同步

AB复制 一、主从复制概述 主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff1b;主数据库一般是准实时的业务数据库。 主从复制的作用 1.做数据的热备&#xff0c;作为后备数据库&#xff0c;主数据库服务器故障后&#xf…

数据价值网络:开启数据驱动的新时代

数据价值网络&#xff1a;开启数据驱动的新时代 数据已成为第五大生产要素&#xff0c;其价值的实现有赖于广泛的应用和高效的流通。数据价值网络涵盖了从数据生成到运用的一系列价值创造环节&#xff0c;各企业基于自身资源禀赋和比较优势进行专业化分工。政策的支持和技术的创…

入门C语言Day15——关系条件逻辑操作符

今天来学习操作符中的一些内容&#xff0c;主要讲的是关系&条件&逻辑操作符 1.关系操作符 首先要来了解一下什么是关系操作符&#xff0c;关系操作符其实就是关系运算符&#xff0c;关系运算符又和关系表达式有关。 C语言中用于比较的表达式&#xff0c;就被称为 “关…

Cadence学习笔记(十三)--设置边框与异形铺铜

直接导入板框用小眼睛可以看到所有的都是线的属性&#xff1a; 那么如何让它变成板框呢&#xff1f;这里先跳转到下图中的层&#xff1a; 将Z--CPOY这一层变成shape区&#xff1a; 之后用Z--copy: Z--COPY设置如下参数&#xff0c;铺铜内缩20mil: 之后选择长方形铺铜就可以了&…

【第5章】Spring Cloud之Nacos服务注册和服务发现

文章目录 前言一、提供者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 二、消费者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 三、服务列表四、服务发现1. 获取服务列表2. 测试2.1 获取所有服务2.2 根据服务名获取服务信息 五、更多配置项总结 前言 本节通过…

CSS 两种盒模型 box-sizing content-box 和 border-box

文章目录 Intro谨记box-sizing 两个不同赋值的效果区别&#xff1f;宽高的数值计算标准盒模型 box-sizing: content-box; box-sizing 属性的全局设置 Intro 先问一句&#xff1a;box-sizing 和它的两个属性值是做什么用的&#xff1f;以前我并不知道它的存在&#xff0c;也做…

集成学习在数学建模中的应用

集成学习在数学建模中的应用 一、集成学习概述&#xff08;一&#xff09;基知&#xff08;二&#xff09;相关术语&#xff08;三&#xff09;集成学习为何能提高性能&#xff1f;&#xff08;四&#xff09;集成学习方法 二、Bagging方法&#xff08;一&#xff09;装袋&…

昇思25天学习打卡营第22天 | DCGAN生成漫画头像

昇思25天学习打卡营第22天 | DCGAN生成漫画头像 文章目录 昇思25天学习打卡营第22天 | DCGAN生成漫画头像DCGAN模型数据集数据下载和超参数创建数据集数据集可视化 搭建网络生成器判别器损失函数和优化器 模型训练总结打卡 DCGAN模型 深度卷积对抗生成网络&#xff08;Depp Co…

python打包exe文件-实现记录

1、使用pyinstaller库 安装库&#xff1a; pip install pyinstaller打包命令标注主入库程序&#xff1a; pyinstaller -F.\程序入口文件.py 出现了一个问题就是我在打包运行之后会出现有一些插件没有被打包。 解决问题&#xff1a; 通过添加--hidden-importcomtypes.strea…

GeoHash原理介绍以及在redis中的应用

GeoHash将二维信息编码成了一个一维信息。降维后有三个好处&#xff1a; 编码后数据长度变短&#xff0c;利于节省存储。利于使用前缀检索当分割的足够细致,能够快速的对双方距离进行快速查询 GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串。 1…

react开发-配置开发时候@指向SRC目录

这里写目录标题 配置开发时候指向SRC目录VScode编辑器给出提示总体1.配置react的 2.配置Vscode的1.配置react的2,配置VSCode的提示支持 配置开发时候指向SRC目录VScode编辑器给出提示 总体1.配置react的 2.配置Vscode的 1.配置react的 1. 我么需要下载一个webpack的插件 这样…