经验分享

【已解决】【Java项目安全系列教程】Spring boot项目,怎么把配置文件中数据库用户名密码加密?

本文是以Jasypt开源加密库为例,来进行讲解的。是jasypt加密库的教程

场景:

在有些情况下,我们将代码打包之后,给客户,或者给对方演示的时候,为了安全考虑,我们会对项目做加密。

比如:对数据库信息加密、对编译后的class文件加密、对spring boot项目打成的jar加密。那么怎么做呢?

本文是:凯哥Java(kaigejava)编写的Java项目安全系列教程中的一篇,本片咱们就来讲讲怎么对spring boot项目的配置文件中文本加密。

使用工具:Jasypt加密

本文是以Jasypt开源加密库为例,来进行讲解的。是jasypt加密库的教程。

一、Jasypt 加密概述

PS: 可以直接跳过子这些概述。直接进入快速开发

1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持,出于安全考虑,Spring boot 配置文件中的敏感信息通常需要对它进行加密/脱敏处理,尽量不使用明文,要实现这一点,办法有很多,自己手动对敏感信息进行加解密也是可以的。

2、有需求就有人奉献,Jasypt 开源安全框架就是专门用于处理 Spring boot 属性加密的,在配置文件中使用特定格式直接配置密文,然后应用启动的时候,Jasypt 会自动将密码解密成明文供程序使用。

1)Jasypt 加密属性配置格式:secret.property=ENC(nrmZtkF7T0kjG/VodDvBw93Ct8EgjCA+),ENC() 就是它的标识,程序启动的时候,会自动解密其中的内容,如果解密失败,则会报错。

2)所以获取这些属性值和平时没有区别,直接使用如 @Value("${secret.property}") 获取即可,取值并不需要特殊处理。

3、jasypt  同一个密钥(secretKey)对同一个内容执行加密,每次生成的密文都是不一样的,但是根据根据这些密文解密成原内容都是可以的.

4、jasypt 官网:https://github.com/ulisesbocchio/jasypt-spring-boot。

5、在项目中集成 jasypt-spring-boot 有三种方法:

方法一

1、如果是 Spring Boot 应用程序,使用了注解 @SpringBootApplication 或者 @EnableAutoConfiguration,那么只需添加 jasyp

原创不易,完成人机校验,阅读全文

相关推荐