说明
pig4cloud 采用的是 jasypt 配置文件加密方案 。
[success] 所有的敏感信息 均使用 ENC(密文) 形式进行配置
- 配置根密钥

- 访问 enc.pig4cloud.com 在线加密

- 特别说明
[warning] 根密钥和密文是一套,若密钥更改,则所有密文需要重新加密配置。 且原文内容 不能随意修改
# 密文、根密钥不匹配 报错如下Description:Failed to bind properties under 'security.oauth2.client.client-id' to java.lang.String:Reason: Failed to bind properties under 'security.oauth2.client.client-id' to java.lang.String
原理解析
- Maven依赖
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>1.16</version></dependency>
- 配置
jasypt:encryptor:password: foo #根密码
- 使用JAVA 方法调用 (不依赖 spring 容器)
/*** jasypt.encryptor.password 对应 配置中心 application-dev.yml 中的密码*/@Testpublic void testEnvironmentProperties() {System.setProperty(JASYPT_ENCRYPTOR_PASSWORD, "lengleng");StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment());//加密方法System.out.println(stringEncryptor.encrypt("123456"));//解密方法System.out.println(stringEncryptor.decrypt("saRv7ZnXsNAfsl3AL9OpCQ=="));}
4 配置文件中使用密文
spring:datasource:password: ENC(密文)xxx: ENC(密文)
总结
- Spring Cloud Config 提供了统一的加解密方式,方便使用,但是如果应用配置没有走配置中心,那么加解密过滤是无效的;依赖JCE 对于低版本spring cloud的兼容性不好。
- jasypt 功能更为强大,支持的加密方式更多,但是如果多个微服务,需要每个服务模块引入依赖配置,较为麻烦;但是功能强大 、灵活。
- 个人选择 jasypt

