Spring Boot加密配置文件特殊内容的示例代码详解

作者:董广明 时间:2023-09-18 08:47:24 

有时安全不得不考虑,看看新闻泄漏风波事件就知道了我们在用Spring boot进行开发时,经常要配置很多外置参数ftp、数据库连接信息、支付信息等敏感隐私信息,如下

Spring Boot加密配置文件特殊内容的示例代码详解

这不太好,特别是互联网应用,应该用加密的方式比较安全,有点类似一些应用如电商、 * 、安检平台、滚动式大屏中奖信息等显示身份证号和手机号都是前几位4109128*********和158*******。那就把图中的明文改造下1. 引入加密包,可选,要是自己实现加解密算法,就不需要引入第三方加解密库


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

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);

输出加密后的效果

Spring Boot加密配置文件特殊内容的示例代码详解

把这两个值对应的填充到数据库用户名和密码

Spring Boot加密配置文件特殊内容的示例代码详解

3. 编写配置类就是Spring里的标有@Configuration注解的类,然后解密配置文件里的数据库用户名和密码(就是上图中的敏感属性字段)

Spring Boot加密配置文件特殊内容的示例代码详解

4. 编写测试案例只写核心代码


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

输出效果:

Spring Boot加密配置文件特殊内容的示例代码详解

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

来源:https://www.cnblogs.com/dongguangming/archive/2020/05/29/12985445.html

标签:Spring,Boot,加密,配置文件
0
投稿

猜你喜欢

  • java中mybatis和hibernate的用法总结

    2022-08-23 07:24:38
  • 学会IDEA REST Client后就可以丢掉postman了

    2023-11-10 15:32:56
  • 使用java8 API遍历过滤文件目录及子目录和隐藏文件示例详解

    2023-08-29 02:42:29
  • mybatis中的count()按条件查询方式

    2022-06-30 06:04:29
  • spring boot 使用profile来分区配置的操作

    2022-11-27 22:55:15
  • SpringBoot结合Redis配置工具类实现动态切换库

    2022-04-15 14:14:13
  • java线程组构造方法源码解析

    2022-11-24 08:58:26
  • Seata AT模式TM处理流程图文示例详解

    2022-05-03 02:28:39
  • Spring Boot 集成Redisson实现分布式锁详细案例

    2023-06-10 05:09:17
  • Spring Boot实现文件上传下载

    2021-11-22 21:19:36
  • Android实现QQ图片说说照片选择效果

    2022-05-15 12:52:08
  • Android动画之雷达扫描效果

    2021-06-10 08:06:52
  • C#多线程的Join()方法

    2022-05-08 23:56:13
  • Android自定义View实现标签流效果

    2021-12-13 16:09:39
  • Android 6.0指纹识别App开发案例

    2021-06-05 10:30:07
  • 23种设计模式(19)java责任链模式

    2021-10-19 15:04:00
  • 安卓Android6.0权限动态获取操作示例

    2023-01-26 22:56:43
  • Avalonia封装实现指定组件允许拖动的工具类

    2023-01-01 19:03:03
  • C#编程调用Cards.dll实现图形化发牌功能示例

    2022-10-24 12:02:54
  • Java try-with-resource语法使用解析

    2021-10-09 02:28:37
  • asp之家 软件编程 m.aspxhome.com