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

jasypt由一个国外大神写了一个springboot下的工具包,

下面直接看代码:

这里以数据用户名和数据库密码加密为例

一,首先引入maven

com.github.ulisesbocchio jasypt-spring-boot-starter 2.1.0

2.1.0版本是我用的时候最新版本。查看最新版本可以到

https://github.com/ulisesbocchio/jasypt-spring-boot 查看

二,application.yml配置文件中增加如下内容(加解密时使用)

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

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

@RunWith(SpringRunner.class)@SpringBootTest@WebAppConfigurationpublic 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的基本urlserver: port: 8888#jasypt加密的密匙jasypt: encryptor: password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7

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

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

有任何关于编程的问题都可以私信我,我看到后会及时解答。

编程小石头,为分享干货而生!据说,每个年轻上进,颜值又高的互联网人都关注了编程小石头。

redismanager 获取不到yml中的密码_SpringBoot敏感信息加密,springboot配置文件密码加密jasypt...相关推荐

  1. springboot取yml中的值_SpringBoot 中从yml配置文件中读取常用的参数值

    SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将ym ...

  2. thymeleaf 获取yml中的值_SpringBoot引入Thymeleaf

    1.Thymeleaf简介 Thymeleaf是个XML/XHTML/HTML5模板引擎,可以用于Web与非Web应用 Thymeleaf的主要目标在于提供一种可被浏览器正确显示的.格式良好的模板创建 ...

  3. springBoot配置文件密码加密

    由于信息安全越来越重视,当别人拿到或者看到你的配置文件.相当于数据库等在裸奔. 所以我们需要对敏感信息比如IP,密码,用户名,关键路径等加密. 我们需要加个jar就可以简单实现配置文件密文启动. 添加 ...

  4. springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量

    由于这里我想通过java连接linux,connection连接需要host.port.username.password及其他路径等等.不想每次修改的时候都去改源文件,所以想写在applicatio ...

  5. SpringBoot中通过ConfigurationProperties注解的方式读取application.yml中配置的属性值

    场景 在SpringBoot后台项目中,某些固定的属性需要配置在配置文件application.yml中. 比如上传到服务器的文件路径. 然后在其他业务代码中比如上传文件接口中需要或者到配置的这个属性 ...

  6. 如何在yml中加上git用户名和密码的验证_使用Apollo升级一下yml文件管理和发布

    背景 在一些项目组中,使用springboot+yml文件的组合方式,进行应用开发和发布. 应用读取方式:yml文件通过configmap进行挂载到容器,让应用进行读取. 配置文件管理方式:yml文件 ...

  7. 获取application.yml中的属性的方法

    @ConfigurationProperties(prefix = "girl") 获取application.yml 中的以girl为开头的配置属性 引用配置文件里的数据 @Va ...

  8. springboot取yml中的值_@Value拜拜:更优雅的获取springboot yml中的值

    偶然看到国外论坛有人在吐槽同事从配置文件获取值的方式,因此查阅了相关资料发现确实有更便于管理更优雅的获取方式. 1.什么是yml文件 application.yml取代application.prop ...

  9. springboot配置文件(.yml)中自定义属性值并在controller里面获取

    1,由于项目需要,学习了新的框架--springboot,顺便练习一下在.yml中配置自定义属性并在controller里面获取.(以下的Springboot框架我已经搭建好,就不在陈述) 2,spr ...

最新文章

  1. SLAM精度测评——rpg_trajectory_evaluatio
  2. wifidog接口文档(转)
  3. 随机森林RF中的两个随机 抽样随机 特征选取随机 文章解释的好的
  4. Python selenium根据class定位页面元素,xpath定位
  5. SQL Server常用的系统存储过程应用实例
  6. 销售收入科目确定VKOA
  7. Hdu 2089-不要62 数位dp
  8. Linux 内核链表剖析(二十)
  9. Counting Triangles
  10. KTable的设置单元格属性
  11. MYSQL的简单命令
  12. 谈谈 JDK 和 SAPMachine 的关系
  13. 如何批量将 psd 转换为 png、jpeg、bmp、svg、webp 格式
  14. 网络工程师职场进化手册
  15. 红警安装中出现的问题 win10,黑屏和无法联机对战(缺少ipx协议)的问题。
  16. 刘晓艳老师的考研单词记忆
  17. 【Auto.JS】Autojs官方提取文档使用说明函数 (1)
  18. 跨系统角色转移服务器未响应,王者荣耀:跨系统角色转移真的来了,附详细操作内容注意事项...
  19. 【备份】git命令行
  20. inc si指令的作用_8086指令

热门文章

  1. 小度智能音箱维修点_会投屏电视的智能音箱——小度智能音箱PLAY青春版轻体验...
  2. 卸载注册表_系统小技巧:软件卸载不了?这里办法多
  3. pythonidea_idea集成python插件
  4. Tomcat 7.0~10.0zip版,安装版,其他一键式全部下载
  5. 机器人专用符文_英雄联盟【LOL】手游部分英雄天赋符文和出装推荐
  6. matlab 腐蚀 结构元素,图像的腐蚀
  7. java考察代码_一段简单的关于字符串的 Java 代码竟考察了这么多东西
  8. 山西省职高计算机分数线,2020年山西五年制高职和普通中专录取分数线
  9. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入
  10. OpenCV人脸检测与人脸识别