网站首页 > 博客文章 正文
一、背景
在系统中的运行过程中,存在很多的配置属性,比如: 数据库配置、阿里云配置 等等,这些配置有些属性是比较敏感的,是不应直接以明文的方式出现在配置文件中,因此对于这些配置我们就需要加密来处理。
二、需求
现如今我们系统中存在如下数据库配置,其中数据库的密码和数据库的url属于敏感配置,在配置文件中需要加密展示,而不应该使用明文展示.
# 此属性的值需要加密展示
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/seata_account?useUnicode=true&characterEncoding=utf8&autoReconnectForPools=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
# 此属性的值需要加密展示
spring.datasource.password=root
配置的加密我们使用 github 上 https://github.com/ulisesbocchio/jasypt-spring-boot 这个开源项目来实现。
三、实现步骤
1、引入jar包
<!-- 配置加密(start) -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<!-- 配置加密(end) -->
2、配置加密配置
vi application.properties
# 加密的密钥,这个值特别重要,建议做成系统的环境变量或通过jar启动的时候传递进去
jasypt.encryptor.password=123456789
jasypt.encryptor.property.prefix=ENC(
jasypt.encryptor.property.suffix=)
jasypt.encryptor.string-output-type=base64
注意: 上方有一个 jasypt.encryptor.password 配置属性,这个属性的值建议通过 jar包启动的时候通过 -D 参数执行,而不要写在配置文件中。
3、加密属性
1、获取加密属性的值
加密属性,官方提供了通过 maven插件 和 代码 的方式来加密,此处采用代码的方式来加密。
当我们引入了 jasypt-spring-boot-starter 这个jar包,就自动配置了一个 StringEncryptor实例,可以用来加解密属性。这个StringEncryptor这个实例我们也可以自己提供来覆盖默认的。
2、配置文件中替换加密的值
4、查看运行结果
从上图中可知:
- 配置文件的属性被加密了。
- 数据源可以获取到正确的连接。
- 程序运行时配置是解密的。
四、完整代码
https://gitee.com/huan1993/spring-cloud-parent/tree/master/springboot/springboot-encrypt-config
五、参考链接
1、https://github.com/ulisesbocchio/jasypt-spring-boot
猜你喜欢
- 2024-11-13 spring boot配置文件敏感字段加密
- 2024-11-13 Spring Boot数据库密码加密的配置方法
- 2024-11-13 Spring Boot安全之application配置信息加密
- 2024-11-13 如何在SpringBoot项目中实现加密?
- 2024-11-13 SpringBoot进阶-SpringBoot如何实现配置文件脱敏?
- 2024-11-13 加密SpringBoot配置文件技巧(加密pdf文件如何解密编辑)
- 2024-11-13 Spring Boot版本和Jasypt版本的兼容性问题?
- 2024-11-13 SpringCloud-OAuth2(二):实战篇(oauth2.0 springcloud)
- 2024-11-13 SpringBoot 配置文件这样加密,才足够安全!
- 2024-11-13 如何保护 SpringBoot 配置文件中的敏感信息
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)