참조
Jasypt란
dependency
3.0.5 버전에서 Spring Boot 3 Support로 3.0.5버전부터 spring boot 3.x 지원
// spring boot 2.X 버전에서는 jasypt 3.0.4 이전버전 까지 사용 가능
// spring boot 3.X 버전에서는 jasypt 3.0.5 버전을 사용해야함
implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'
사용
public class Jasypt {
public static void main(String[] args) {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
// 암호화할 때 사용하는 키
config.setPassword("password");
// 암호화 알고리즘
config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
// 암호화 횟수
config.setKeyObtentionIterations("1000");
// 인스턴스 pool
config.setPoolSize("1");
config.setProviderName("SunJCE");
// salt 생성 클래스
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
// 인코딩 방
config.setStringOutputType("base64");
encryptor.setConfig(config);
System.out.println(encryptor.encrypt("chobolevel"));
// result = lOIQqlul4Glc1/ewQXffOFnZUVl3TAEmvM5UHnO5SwCKAFTo9P8ZLSOnDSG5M2OT
}
}
jasyptStringEncryptor 이름으로 빈이 들록되어 사용됨
spring:
datasource:
username: ENC(lOIQqlul4Glc1/ewQXffOFnZUVl3TAEmvM5UHnO5SwCKAFTo9P8ZLSOnDSG5M2OT)
jasypt:
encryptor:
algorithm: PBEWITHHMACSHA512ANDAES_256