博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何用Spring Boot加密配置文件中的特殊内容示例代码详解
阅读量:4018 次
发布时间:2019-05-24

本文共 1580 字,大约阅读时间需要 5 分钟。

前言:

这篇文章主要介绍了Spring

Boot加密配置文件特殊内容的相关知识,是小编在网上看的的,如有冒犯会及时修改。本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在这里插入图片描述

有时安全不得不考虑,看看新闻泄漏风波事件就知道了我们在用Spring boot进行开发时,经常要配置很多外置参数ftp、数据库连接信息、支付信息等敏感隐私信息,如下
在这里插入图片描述
这不太好,特别是互联网应用,应该用加密的方式比较安全,有点类似一些应用如电商、公安、安检平台、滚动式大屏中奖信息等显示身份证号和手机号都是前几位4109128**和158。那就把图中的明文改造下
1. 引入加密包,可选,要是自己实现加解密算法,就不需要引入第三方加解密库

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

2. 加密敏感内容,然后填充配置文件加密代码:

BasicTextEncryptor textEncryptor = new BasicTextEncryptor();		textEncryptor.setPassword("company");		String name = textEncryptor.encrypt("root");		String password = textEncryptor.encrypt("cstorfs");			System.out.println("数据库用户名加密后:"+name);		System.out.println("数据库密码加密后:"+password);

输出加密后的效果

在这里插入图片描述
把这两个值对应的填充到数据库用户名和密码
在这里插入图片描述
3. 编写配置类就是Spring里的标有@Configuration注解的类,然后解密配置文件里的数据库用户名和密码(就是上图中的敏感属性字段)
在这里插入图片描述
4. 编写测试案例只写核心代码

// 我使用的最新版Springboot2.3.0(放弃1版本)启动后,不放心的话可以测试数据库是否连接正常		UserMapper userMapper = applicationContext.getBean(UserMapper.class);		Example example = new Example(User.class);		example.createCriteria().andEqualTo("username", "dongguangming");		List
userList = userMapper.selectByExample(example); if (userList.size() > 0) {
User user = userList.get(0); logger.info("数据库连接正常,从用户表取用户名是donggguangming的数据,用户:" + user); }

输出效果:

在这里插入图片描述
ok,就是这效果!!!注意,加解密算法没有强制要求,可以自己写,敏感信息(ftp、email、数据库连接信息、支付支付宝微信等)也可以接着加,用的时候把它解密出现就行

总结

有了 Spring Boot 的加持,我们在开发微服务的过程中,当然是如鱼得水。不过在最最基础的线程池的运用上,我们团队还是踩了不少比较低级的坑,这些都是可以都过很好的约定来进行规避的。这篇就简单给大家演示了一下我们基于 Spring Boot 的加密配置文件。

另外本人整理收藏了20年多家公司面试知识点整理 ,以及各种Java核心知识点免费分享给大家,想要资料的话请暗号qf。

在这里插入图片描述
在这里插入图片描述

转载地址:http://chefi.baihongyu.com/

你可能感兴趣的文章
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
CLOSE_WAIT和TIME_WAIT
查看>>
在C++中使用Lua
查看>>
在Dll中调用自身的位图资源
查看>>
IP校验和详解
查看>>
C++中使用Mongo执行count和distinct运算
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
C++获取文件大小常用技巧分享
查看>>
未来5年大机遇:做贩卖多巴胺的超级玩家
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>