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 {
@Autowired
StringEncryptor encryptor;
@Test
public 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: update
show-sql: true
#返回的api接口的配置,全局有效
jackson:
default-property-inclusion: non_null #如果某一个字段为null,就不再返回这个字段
#url相关配置,这里配置url的基本url
server:
port: 8888
#jasypt加密的密匙
jasypt:
encryptor:
password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7
注意上面的 ENC()是固定写法,()里面是加密后的信息。
到此,我们就实现了springboot配置文件里的敏感信息加密。是不是很简单。
SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt的更多相关文章
- SpringBoot配置文件敏感信息加密-jasypt
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...
- SSM项目的数据库密码加密方案
项目主要采用:SpringMVC4.3.2.RELEASE +Spring4.3.2.RELEASE + Maven 3.3.3 + druid 1.0.29 + Mybatis 3.2.8 + My ...
- 使用durid的ConfigFilter对数据库密码加密
<!-- 配置dbcp数据源 --> <bean id="remoteDS" class="org.apache.commons.dbcp.BasicD ...
- glassfish配置中数据库密码加密方法
glassfish配置中数据库密码加密方法 Glassfish中的数据库连接池需要使用密文保存数据库密码.如果不是,则可按如下方法可配置 通过Glassfish中的Alias实现,配置方法如下: 1. ...
- SpringBoot项目mysql配置文件密码加密(jasypt)
起因:因为我个人微博想要公开源码,但数据库配置文件会暴露在外面,又不想生产跟开发环境建来回切换,所以想到了加密数据库密码,于是问了群里的一个朋友小XX(原谅我不识字) 经过: 简单粗暴,直接上代码: ...
- springboot对数据库密码加密
第一步:maven引jar包 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifa ...
- 【SpringBoot】SpringBoot集成jasypt数据库密码加密
一.为什么要使用jasypt库? 目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文 ...
- Spring-Boot数据库密码加密配置
springboot集成mysql/oracle时需要在yml/properties中配置数据库信息,用户名密码是肯定有的,所以就涉及到密码的加密,当然不加密也是可以的,正如某位大佬所说的,不加密就像 ...
- 在OpenErp的配置文件中为数据库密码加密
openerp连接数据库的用户名和密码可以命令行给出, 也可以设置在配置文件中, 如下例所示: db_user = openerp db_password = laoliu 因为它使用了明文的密码 ...
- Druid对数据库密码加密的坑
背景: 在对已有项目搭建本地环境,修改了本地ip端口和数据库帐号密码(使用了明文). 然后项目一直跑不起来,还抛出各种异常,经过分析发现主要错在这里:druid java.lang.IllegalAr ...
随机推荐
- 墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联
分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区 导读 DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储. ...
- iOSwkwebView 打开 TXT/PDF 文件乱码的问题
最近做资料文件下载下来并查看的时候,用 WKWebView 打开office 类型的文件的时候是没问题的,但是打开测试人员上传的一个 TXT/PDF 文件就出现了乱码问题,经过查看,应该是文件的编码问 ...
- .NET 白板书写预测-曲线拟合
白板软件书写速度是其最核心的功能,注册StylusPlugin从触摸线程拿触摸点数据并在另一UI线程绘制渲染是比较稳妥的方案,具体的可以查看小伙伴德熙的2019-1-28-WPF-高性能笔 - lin ...
- 基于 Nginx 的大型互联网集群架构与实战方案
1. Nginx 负载均衡基础配置 首先,搭建一个基础的 Nginx 负载均衡器,用于将流量分发到多个后端服务器上. 步骤 1.1:安装 Nginx 在每台要作为负载均衡器的服务器上,安装 Nginx ...
- 一、Spring Boot集成Spring Security专栏
一.Spring Boot集成Spring Security专栏 一.Spring Boot集成Spring Security之自动装配 二.实现功能及软件版本说明 使用Spring Boot集成Sp ...
- Android复习(五)设备兼容—>多apk支持
1. 对于不同的屏幕发布单独的apk https://developer.android.google.cn/training/multiple-apks/screensize 2.多窗口模式 在An ...
- CentOS 7.6 内网穿透服务lanproxy部署
在很多场景下内网穿透都是我们常常遇到的需求,之前也用过花生壳.ngrok.FRP 等等一些工具,但是由于限速.收费.安全各方面因素只好放弃了. 近期无意间看到 「传送门:lanproxy」 这款开源工 ...
- c++时间管理大师
作者花了一个下午写出来的. c++写的时间管理大师. 支持一下. #include<bits/stdc++.h> #include<windows.h> using names ...
- Java学习十六—掌握注解:让编程更简单
一.关于注解 1.1 简介 Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据.它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译.部署或运行时进 ...
- 国内计算机领域相关的SCI和EI期刊,以及好中的SCI和EI期刊(不限国内外)
好中的: SCI刊: EI刊: EI会议: 参考: CCF发布计算领域高质量科技期刊分级目录 国内的: SCI-Expanded 1. <Journal of Computer Scie ...