对于配置中心的账号、密码进行加密,项目汇总用到的是 jasypt 的解决方案。
Maven 依赖JAVA 参数配置com.github.ulisesbocchio jasypt-spring-boot-starter 1.16
在启动的bootstrap.yml 增加 jasypt 解密的秘钥
jasypt:
encryptor:
password: sang #根密码
调用JAVA API 生成密文
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = AdminApplication.class)
public class AdminApplicationTest {
@Autowired
private StringEncryptor stringEncryptor;
@Test
public void testEnvironmentProperties() {
System.out.println(stringEncryptor.encrypt("sang"));
}
}
或者直接使用JAVA 方法调用 (不依赖 spring 容器)
@Test
public void testEnvironmentProperties() {
System.setProperty(JASYPT_ENCRYPTOR_PASSWORD, "sang");
StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment());
//加密方法
System.out.println(stringEncryptor.encrypt("123456"));
//解密方法
System.out.println(stringEncryptor.decrypt("saRv7ZnXs"));
}
配置文件中使用密文
spring:
datasource:
password: ENC(密文)
解析代码示例
public static void main(String[] args) {
StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment());
System.setProperty("jasypt.encryptor.password", "key");
System.out.println(stringEncryptor.decrypt("---"));
}



