• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

使用Springboot对配置文件中的敏感信息加密

springboot 搞代码 4年前 (2022-01-05) 119次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了使用Springboot对配置文件中的敏感信息加密方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Springboot对配置文件的敏感信息加密

前言

最近公司对软件的安全问题比较在意,要求对配置文件中的敏感信息如数据库密码等进行加密。但是Springboot是一款高度集成的框架,如果仅仅是简单的对数据库密码进行加密了,由于连接数据库的操作是框架自己完成的,这就会造成不小的麻烦。

经过调研,找到了如下方式还比较方便。

项目配置

该项目用到了jasypt库。原理很简单,通过该库提供的方法进行敏感信息加密,生成密文xxxxx,然后将密文使用ENC()包裹起来。

添加依赖

 <!-- jasypt场景启动器依赖 --> com.github.ulisesbocchiojasypt-spring-boot-starter2.1.0

修改明文密码

配置文件中密码将原来的明文密码改为ENC(密文密码)的样子,如下:

 # 原MySQL密码,删掉不用 #spring.datasource.password=xxxx # 加密后的MySQL密码 spring.datasource.password=ENC(BSYVaS0K9UEIIZACPLduGUumokOpB44c==) # 如果是其他需要加密的密码,比如es密码es123456 es.password=ENC(xxxxxxx) # 加密密码所需要的盐(随便写)。为了更加安全,这一行配置不要写在配置文件中,可以写在启动参数中 jasypt.encryptor.password=nmyswls # 指定使用的算法 # 可选算法有:PBEWITHHMACSHA512ANDAES_256、PBEWITHHMACSHA512ANDAES_128、PBEWithMD5AndDES jasypt.encryptor.algorithm=PBEWithMD5AndDES

生成加密字符串

加密过程中需要使用到盐,盐的设置不要太随意,因为原则上盐不能存储又不能忘记,所以尽量遵循一定的命名规则,供内部人员依据规则判断盐是什么。

# 其中下面运行的jar包为上面maven依赖中所指定的jar包,input参数为需要加密的字符串,password参数为加密所需的盐。 java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=”str” password=”salt” algorithm=PBEWithMD5AndDES

上述jar包可以从maven中央仓库中下载。

注意事项

由于该方法是对称加密方式,因此系统在解密的时候同样需要此盐,但是盐一定不能对外暴露。因此在第二步配置文件中并没有配置解密所需的盐,而是改用在系统启动时来源gao@!dai!ma.com搞$$代^@码!网通过命令行传参的方式传入。

总结一下

  • 本方案依赖jasypt库,可以对配置文件中任意字符串进行加密,不仅仅局限于密码,更不仅仅局限于mysql密码。
  • 由于采用对称加密算法,如果泄露了加密需要的盐(上文提到的jasypt.encryptor.password参数),很容易对密码进行解密。因此加密用的盐需要写在配置文件外面,启动参数中。

springboot使用加密的配置属性

依赖:

  com.github.ulisesbocchiojasypt-spring-boot-starter1.16

1、加密属性配置

在application.properties或者相应的proffile的properties文件

其中

 jasypt.encryptor.password = klklklklklklklkl 是加解密的盐

enc是加密变量使用的特殊符号.

2、也可以把这些配置

到apollo中如果使用了apollo配置中心

代码执行的效果

参考:

https://github.com/ulisesbocchio/jasypt-spring-boot

https://github.com/ctripcorp/apollo-use-cases/tree/master/spring-boot-encrypt

本文目的是说明这个是springboot支持的 既支持普通boot项目 也可以用于apollo配置中心

以上为个人经验,希望能给大家一个参考,也希望大家多多支持gaodaima搞代码网

以上就是使用Springboot对配置文件中的敏感信息加密的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用Springboot对配置文件中的敏感信息加密

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址