왜 암호화를 해야 하는지는 따론 찾아보시길 바란다.
그럼 바로 코드로 시작하자.
datasource.password=blake.com
@Slf4j
@SpringBootTest
public class PropertiesTest {
@Value("${datasource.password:}")
private String password;
@Test
public void test() {
log.info("datasource.password : {}", password);
}
}
2022-12-21 14:28:45.506 INFO 70405 --- [ main] com.blake.encypt.PropertiesTest : datasource.password : blake.com
일단 library 추가해야지.
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<plugin>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-maven-plugin</artifactId>
<version>3.0.3</version>
</plugin>
jasypt.encryptor.password=blakespace
DEC() 로 암화할 대상을 감싼다.
datasource.password=DEC(blakespace.com)
jasypt-maven-plugin 이 DEC()의 내용을 일괄처리한다.
mvn jasypt:encrypt -Djasypt.encryptor.password=blakespace
주의 : -Djasypt.encryptor.password 명령시 properties 내의 설정된 값이랑 일치하게 해야 암호화 실패한다.
datasource.password=ENC(/AL9nJENCYCh9Pfzdf2xLPsqOZ6HwNgQ3AnMybFAMeOM5GphZlOK6PxzozwtCm+Q)
jasypt.encryptor.password=blakespace
암화화 되었으니 이제 복호화를 해볼차례다.
mvn jasypt:decrypt -Djasypt.encryptor.password=blakespace
해당명령은 단순 화면에 출력하는 용도일뿐 실제 파일은 수정하지 않는다.
datasource.password=DEC(blakespace.com)
jasypt.encryptor.password=blakespace