可以对密码等敏感信息加密安全储存,在项目中自动解密使用
Spring Cloud Config的非对称加密可以使用RSA加密方式,通过JDK自带的keytool生产秘匙对,对敏感信息进行加密解密。
生产秘匙对:
keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=China,O=www.howardliu.cn,L=Beijing,S=Beijing,C=China" -keypass changeme -keystore config-service.jks -storepass letmein
将生成的keystore文件拷贝到src/main/resources目录中,然后在配置文件bootstrap.yml中配置信息秘匙对信息:
location是存储路径,alias、password、secret是上面那段代码设置的对应的值
encrypt:
key-store:
location: classpath:/config-service.jks
alias: mytestkey
password: letmein
secret: changeme
在pom.xml中加入了如下配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jks</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.jks</include>
</includes>
</resource>
</resources>
</build>
然后启动应用,通过访问http://localhost:8888/encrypt/status ,返回{"status":"OK"},说明配置正确。这个使用就可以通过访问/encrypt和decrypt两个endpoints对指定信息进行加密解密了。
通过postman进行加密和解密

本文介绍了如何利用SpringCloudConfig结合RSA非对称加密技术,安全存储并解密应用程序中的密码等敏感信息。通过keytool生成秘钥对,配置SpringCloudConfig,设置keystore文件,并在项目启动后通过特定端点进行加密和解密操作。
6624

被折叠的 条评论
为什么被折叠?



