我配置了一个由本地Git存储库支持的Spring Cloud Config服务器,并创建了一个Spring Boot应用程序以使用来自SCC的配置。 Git中的配置文件scc-client.yml
具有两个纯文本属性和一个加密的app.secret
:
app:
name: client-app
port: 8085
secret: '{cipher}AgCGh ... X3pTW'
解密是在客户端完成的:SCC服务器上的bootstrap.properties
的{{1}}和spring.cloud.config.server.encrypt.enabled=false
我的Spring Boot应用程序包含:
bootstrap.yml
keystore.p12包含用于加密...
encrypt:
keystore:
location: classpath:keystore.p12
password: kspass
alias: client-key
secret: kspass
key: client-key
rsa:
strong: true
...
值的密钥。我使用keytool生成了密钥:
app.secret
Spring在上述设置中在客户端解密值时是否使用混合RSA加密方法?
通过代码判断,一些keytool -genkeypair -alias client-key -keyalg RSA -deststoretype pkcs12 -keystore src/main/resources/keystore.p12 -keysize 4096 -storepass kspass -keypass kspass
方法中正在调用与AES相关的组件,但是我不确定这是否代表完整的hybrid encryption以及在此过程中使用了自己生成的AES密钥
答案 0 :(得分:1)
Spring Cloud确实采用了Wikipedia链接中描述的混合算法。服务器或命令行客户端对数据进行加密。服务器,命令行客户端或客户端应用可以解密它们。请注意,客户端解密通常是最弱的,因为您必须使用与encyptor相同的私钥对其进行配置。