【已解决】【Java项目安全系列教程】Spring boot项目,怎么把配置文件中数据库用户名密码加密?
场景:
在有些情况下,我们将代码打包之后,给客户,或者给对方演示的时候,为了安全考虑,我们会对项目做加密。
比如:对数据库信息加密、对编译后的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
原创不易,完成人机校验,阅读全文