配置内容的加密解密
很多场景下很多场景下,对于某些敏感的配置内容,例如数据库账号密码等应当加密存储。Config Server为配置内容的加密与解密提供了支持。
安装JCE
Config Server的加密解密功能依赖JCE(Java Cryptography Extension)。
jdk8默认提供了,如果未在目录(/Library/Java/JavaVirtcy Machines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/security
)下找到policy
文件夹,可以去官网下载JCE。然后放进去。
对称加密
在 Config Server 项目中 添加一个bootstrap.yml
,一定要新增加配置文件,在原来的配置文件中添加配置无效。增加以下配置。
encrypt:
key: config
然后启动项目,在终端输入curl http://localhost:8011/encrypt -d user
。可以得到user
的加密串。
weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/encrypt -d user
b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883
输入 curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883
weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883
user
说明能正常加密解密。
加密解密数据库密码
在git上新建一个文件config-dev.yml
或者修改原来的properties
文件。加入数据库配置。
spring:
datasource:
name: user
password: '{cipher}b6