BackEnd/Spring Boot

jasypt 설정 하기

Raconer 2023. 5. 1. 16:10
728x90

jasypt 설정 기본순서

  1. dependency 추가
  2. config bean 코드 추가
  3. application.yml에 jasypt 사용할 bean설정

설정

  1. dependency 추가
    implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'
  1. config bean 코드 추가
  import org.jasypt.encryption.StringEncryptor;
  import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
  import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
  import org.springframework.beans.factory.annotation.Value;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;

  @Configuration
  public class JasyptConfig {

      @Value("${jasypt.encryptor.password}")// 암호화에 사용할 비밀번호 주로 VMoption으로 설정
      String encryptKey;

      @Bean(name = "jasyptStringEncryptor") // application.yml에 사용할 bean이름 설정
      StringEncryptor stringEncryptor() {

          PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); // 암호화, 복호화를 할때 사용
          SimpleStringPBEConfig config = new SimpleStringPBEConfig(); // 암호화, 복호화 구성 정보 

          config.setPassword(encryptKey); // 암호화에 사용할 키값
          config.setPoolSize("1"); // 객체 pooling 크기 1로 설정
          config.setAlgorithm("PBEWithMD5AndDES"); // 암호화 알고리즘
          config.setStringOutputType("base64"); // 암호화 결과 인코딩
          config.setKeyObtentionIterations("1000"); // 암호화 키를 얻기 위해 반복 수행 횟수
          config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); // 암호화 salt값
          encryptor.setConfig(config); 
          return encryptor;
      }
  }
  1. application.yml 설정
jasypt:
    encryptor:
        bean: jasyptStringEncryptor
728x90

'BackEnd > Spring Boot' 카테고리의 다른 글

영속성 이란?  (0) 2023.05.21
JPA Entity 작성_1 (공통, 같은 테이블)  (0) 2023.05.15
jasypt 란?  (0) 2023.05.01
mysql-connector-j와 mysql-connector-java  (0) 2023.04.30
JPA 응용 방법 _ Specification_2  (0) 2023.04.18