使用多键与键旋转

此外{密码}在加密属性值中,配置服务器会寻找零或多个{name:value}在(Base64编码的)密文开始前的前缀。 密钥传递给TextEncryptorLocator,可以执行定位 的逻辑TextEncryptor为了密码。 如果你配置了密钥存储 (encrypt.keystore.location),默认定位符寻找由钥匙前缀,带有类似以下密文的密文:spring-doc.cadn.net.cn

foo:
  bar: `\{cipher}{key:testkey}...`

定位器会寻找一个名为“testkey”的密钥。 秘密也可以通过使用{秘密:...}前缀中的值。 但如果没有提供密钥存储,默认会使用密钥存储密码(这就是你构建密钥存储且不指定密钥时获得的密码)。 如果你提供了秘密,也应该用自定义加密秘密定位器.spring-doc.cadn.net.cn

当密钥仅用于加密几个字节的配置数据(即未在其他地方使用)时,从密码学角度看,密钥轮换几乎没有必要。 不过,你有时可能需要更换密钥(例如在安全漏洞发生时)。 在这种情况下,所有客户端都需要更改源配置文件(比如在 git 里),并使用新的配置文件{key:...}所有密码的前缀。 请注意,客户端首先需要检查密钥别名是否存在于配置服务器密钥库中。spring-doc.cadn.net.cn

如果你想让配置服务器处理所有加密和解密,那么{name:value}前缀也可以作为明文添加到/加密端点。