SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt

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

这里以数据用户名和数据库密码加密为例
一,首先引入maven

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

2.1.0版本是我用的时候最新版本。查看最新版本可以到
https://github.com/ulisesbocchio/jasypt-spring-boot 查看
二,application.yml配置文件中增加如下内容(加解密时使用)

#jasypt加密的密匙
jasypt:encryptor:password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

三,在测试用例中生成加密后的秘钥:

@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class testTest {@AutowiredStringEncryptor encryptor;@Testpublic void getPass() {String url = encryptor.encrypt("jdbc:mysql://47.97.192.116:3306/sell?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8");String name = encryptor.encrypt("你的数据库名");String password = encryptor.encrypt("你的数据库密码");System.out.println(url+"----------------");System.out.println(name+"----------------");System.out.println(password+"----------------");Assert.assertTrue(name.length() > 0);Assert.assertTrue(password.length() > 0);}
}

下面是加密后的输出结果

3OW8RQaoiHu1DXfDny4FDP0W5KOSVcWN5yWNxQ6Q4UE=----------------
ITE8wJryM8hVnofDKQodFzPZuPpTaMtX71YDoOTdh0A=----------------

四,将上面生成的name和password替换配置文件中的数据库账户和密码,替换后如下:

spring:#数据库相关配置datasource:driver-class-name: com.mysql.jdbc.Driver#这里加上后缀用来防止mysql乱码,serverTimezone=GMT%2b8设置时区url: ENC(i87lLC0ceVq1vK91R+Y6M9fAJQdU7jNp5MW+ndLgacRvPDj42HR8mUE33uFwpWqjOSuDX0d1dd2NilrnW7yJbZmoxuJ3HmOmjwY5+Vhu+e3We4QPDVCr/s/RHsQgYOiWrSQ92Mjammnody/jWI5aaw==)username: ENC(3OW8RQaoiHu1DXfDny4FDP0W5KOSVcWN5yWNxQ6Q4UE=)password: ENC(ITE8wJryM8hVnofDKQodFzPZuPpTaMtX71YDoOTdh0A=)jpa:hibernate:ddl-auto: updateshow-sql: true#返回的api接口的配置,全局有效jackson:default-property-inclusion: non_null #如果某一个字段为null,就不再返回这个字段#url相关配置,这里配置url的基本url
server:port: 8888
#jasypt加密的密匙
jasypt:encryptor:password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

注意上面的 ENC()是固定写法,()里面是加密后的信息。

到此,我们就实现了springboot配置文件里的敏感信息加密。是不是很简单。

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

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

相关文章

TensorFlow Hub介绍:TensorFlow中可重用的机器学习模块库

摘要&#xff1a; 本文对TensorFlow Hub库的介绍&#xff0c;并举例说明其用法。 在软件开发中&#xff0c;最常见的失误就是容易忽视共享代码库&#xff0c;而库则能够使软件开发具有更高的效率。从某种意义上来说&#xff0c;它改变了编程的过程。我们常常使用库构建块或模块…

新建文本文档好玩的代码_(03)用什么工具写ASP源代码?

有很多工具可以书写ASP源代码&#xff0c;我使用Windows自带的记事本来编写ASP源代码。下面做一下简要介绍。一&#xff0e; ASP源代码文件的格式1. ASP源代码文件是以.asp为后缀命名的文本文件&#xff0c;如index.asp,conn.asp等&#xff0c;前面设置的IIS就是执行这些文件内…

js中组装拼接json对象,通过java后端接收并解析

核心点说明&#xff1a; 一、首先将js对象转为json&#xff0c;然后将json通过base64加密&#xff08;防止后台接收乱码&#xff0c;特殊符号等各种奇葩问题&#xff09; json JSON.stringify(list); console.log(BASE64.encoder(json));js的base64加密传送门 二、java后台…

漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?

戳蓝字“CSDN云计算”关注我们哦&#xff01;周末在家休息&#xff0c;女朋友在刷朋友圈&#xff0c;突然她问我&#xff1a;鸿蒙OS回顾2019年8月9日华为开发者大会上&#xff0c;华为消费者业务CEO余承东正式宣布发布自有操作系统鸿蒙&#xff0c;内核为Linux内核、鸿蒙微内核…

apache ant 安装_Jmeter+ Ant+jenkins 接口自动化框架实现

一、文件配置•编写jmeter脚本 •上传jmx脚本到jmeter目录下&#xff0c;新建一个Loadtest目录&#xff0c;•在Tomcat webapp 文件夹下面新建报告输出文件夹testReport&#xff1b;•将jmeter中extras 文件夹ant-jmeter-1.1.1.jar 包放置于ant目录下lib文件夹 •将jmeter的ext…

机器学习必备:前20名Python人工智能和机器学习开源项目

摘要&#xff1a; 机器学习之旅必了解&#xff1a;前20名Python人工智能和机器学习开源项目&#xff01; 如今机器学习和人工智能已经变得家喻户晓&#xff0c;有很多爱好者进入了该领域。但是&#xff0c;什么才是能够进入该领域的正确路径呢&#xff1f;如何保持自己跟上该领…

索非亚机器人的采访_还记得曾经扬言要“毁灭人类”的机器人索菲亚吗?如今过成这样...

如今人类电子信息技术的不断发展&#xff0c;人工智能大量出现在我们的生活之中&#xff0c;比如手机、电脑等&#xff0c;他们让我们的生活更加便捷和高效&#xff0c;人工智能作为一项服务人类的技术&#xff0c;在带给我们生活的便利的同时&#xff0c;却也让很多人表示担忧…

【Java线程池】Java线程池汇总,看这一篇文章就够了

https://blog.csdn.net/cmm0401/article/details/83377547

华为5G设备全球分布图曝光:欧洲占总量近6成;地平线发布首款车规级AI芯片,名叫征程2.0;奥迪与比亚迪达成电池供货协议……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 首个金融教育主题微信小游戏…

阿里云全球首次互联网8K直播背后的技术解读

摘要&#xff1a; 3月28日&#xff0c;云栖大会深圳峰会现场&#xff0c;阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案&#xff0c;也是全球首次8K互联网视频直播。 视频地址&#xff1a;https://v.qq.com/x/page/v0618atp7…

python画海绵宝宝_《1,2,3到动物园》数数书,适合幼儿园小班宝宝亲子共读,从游戏中了解数字的概念...

大家好&#xff0c;我是神桐妈妈&#xff0c;最近开始陆续给几个幼儿园做了有关绘本方面的师资培训&#xff0c;然后又有新的幼儿园要有了嵌入式幼儿园绘本馆&#xff0c;有了绘本&#xff0c;有了书香氛围&#xff0c;又有孩子们开始接触绘本&#xff0c;每天拿着一本绘本带回…

ESS控制台发布新功能:创建多实例规格的伸缩配置

摘要&#xff1a; 背景 原弹性伸缩ESS服务限定&#xff0c;生效的伸缩配置中只能对应一种实例规格&#xff0c;这样就会存在如果生效的配置中的实例规格的库存不足&#xff08;高配实例规格通常更容易出现库存不足的情况&#xff09;时&#xff0c; 用户配置好的伸缩规则以及伸…

在列表前方插入一个数据_通俗易懂的Redis数据结构基础教程

Redis有5个基本数据结构&#xff0c;string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构&#xff0c;把这5个数据结构都吃透了&#xff0c;你就掌握了Redis应用知识的一半了。string首先我们从string谈起。string表示的是一个可变的字节数组…

java 基础训练

https://blog.csdn.net/cmm0401/category_7212765.html

OpenStack精华问答 | NOVA计算服务

自诞生以来&#xff0c;OpenStack 似乎一直被质疑&#xff0c;其背后最重要的两大推手 NASA 和 Rackspace 都弃它而去&#xff0c;惠普、思科接连宣布关闭基于 OpenStack 的公有云服务&#xff0c;但是,OpenStack 依旧坚挺。1Q&#xff1a;NOVA计算服务A&#xff1a;1 实例生命…

java泛型_Java核心知识 基础五 JAVA 泛型

泛型提供了编译时类型安全检测机制&#xff0c;该机制允许程序员在编译时检测到非法的类型。泛型的本 质是参数化类型&#xff0c;也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法&#xff0c; 能够对整型数组、字符串数组甚至其他任何类型的数组进行排序…

省钱小贴士(ECS):教你如何每年省出8w+ 块

摘要&#xff1a; 随着用户越来越多地使用阿里云的ECS服务&#xff0c;如何用最小的成本来保有ECS&#xff0c;成为用户越来越重要的关注点。为了更好的服务客户&#xff0c;ECS团队调整了系统盘的最小容量限制。 随着用户越来越多地使用阿里云的ECS服务&#xff0c;如何用最小…

相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵

目录信息熵条件熵相对熵交叉熵总结一 信息熵 (information entropy)熵 (entropy) 这一词最初来源于热力学。1948年&#xff0c;克劳德爱尔伍德香农将热力学中的熵引入信息论&#xff0c;所以也被称为香农熵 (Shannon entropy)&#xff0c;信息熵 (information entropy)。本文只…