一. 概述
在企业项目,配置文件通常保存着各种明文密码, 这种直接明文的做法可能就有点草率,不够安全. 本DEMO整合jasypt简单实现配置文件属性加密, 具体详细可以看jasypt官网
二. SpringBootDemo
2.1 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>3.0.4</version>
</dependency>
2.2 获取属性加密值
把
HelloWorld
加密
@RunWith(SpringRunner.class)
@SpringBootTest
public class PasswordTest {
@Autowired
private StringEncryptor encryptor;
/**
* 生成加密密码
*/
@Test
public void testGeneratePassword() {
// 你的邮箱密码
String password = "HelloWorld";
// 加密后的密码(注意:配置上去的时候需要加 ENC(加密密码))
String encryptPassword = encryptor.encrypt(password);
String decryptPassword = encryptor.decrypt(encryptPassword);
System.out.println("password = " + password);
System.out.println("encryptPassword = " + encryptPassword);
System.out.println("decryptPassword = " + decryptPassword);
}
}
运行结果
password = HelloWorld
encryptPassword = nWwBNED1eKH2sZouKA0W71S6U5lggLI8
decryptPassword = HelloWorld
2.3 yml配置
demo:
# 格式 ENC(加密密码)
value: ENC(nWwBNED1eKH2sZouKA0W71S6U5lggLI8)
# 为 jasypt 配置解密秘钥
jasypt:
encryptor:
password: wpr
2.4 测试
@Value("${demo.value}")
public String password;
@Test
public void testValue(){
System.out.println("密码值为:"+password);
}
网友评论