1. 참조

    1. 공식문서: https://github.com/ulisesbocchio/jasypt-spring-boot
    2. 참조 블로그: https://bamdule.tistory.com/251
  2. Jasypt란

    1. 개발자가 암호화에 대해 잘알지 않더라도 기본 암호화가 가능하도록 하는 java 라이브러리
    2. 주로 공개된 프로젝트의 프로퍼티를 암호화하기 위해 사용됨
  3. dependency

    3.0.5 버전에서 Spring Boot 3 Support로 3.0.5버전부터 spring boot  3.x 지원

    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'
    
  4. 사용

    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 이름으로 빈이 들록되어 사용됨

    jasyptStringEncryptor 이름으로 빈이 들록되어 사용됨

    spring:
    	datasource:
    		username: ENC(lOIQqlul4Glc1/ewQXffOFnZUVl3TAEmvM5UHnO5SwCKAFTo9P8ZLSOnDSG5M2OT)
    
    jasypt:
    	encryptor:
    		algorithm: PBEWITHHMACSHA512ANDAES_256