yml 파일 암호화

2023. 8. 29. 13:56스프링

implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4'

gradle에 라이브러리를 추가해준다.

jasypt:
  encryptor:
    #    운영에서는 톰캣에서  environment variable :jasypt.encryptor.password=${password} 설정하고 밑에 password 지워야함
    password: ${yourPassword}
    bean: jasyptStringEncryptor

local 환경 테스트기때문에 직접 암호화 키를 넣어줬다.

@Configuration
public class JasyptConfig {
    @Value("${jasypt.encryptor.password}")
    private String password;

    @Bean("jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(password); // 암호화 키 값
        config.setAlgorithm("PBEWithMD5AndDES"); // 암호 알고리즘
        config.setKeyObtentionIterations("1000"); // PBE 해쉬 횟수
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        return encryptor;
    }
}

bean 등록을 하고

 

public static void main(String[] args) {
    	StandardPBEStringEncryptor jasypt = new StandardPBEStringEncryptor();
    	jasypt.setPassword("7246e7ac-3687-11ee-be56-0242ac120002");
        jasypt.setAlgorithm("PBEWITHMD5ANDDES");
        System.out.println("KXTkNt*7wH = " + jasypt.encrypt("test"));
}

test코드에 작성해도 되고 여기서는 메인 메소드에서 바로 콘솔로 확인해서 얻어냈다.
password를 지정한 후에 암호화시키고 싶은 문자열을 암호화 시킨다 암호화 된 값을 ENC(ddd32r2) 이런 식으로 사용하면 된다.

 

      url: ENC(k42jyDbWQYRTbns+AK9dj7JQeNvgyvGcEL0L5Rm7aAMCKsfqVORw0/X1XQF2MTxCAf9KLe2+A0GgFJr0AQTQ404aHvc32QhGoPpv4qlSaP2QjOruB1rmpA==)
      username: ENC(/8wm049YptB9OaI9tJKeeQ==)
      password: ENC(gtGXCtpN5dpIdqfqnbYpqwJ7I76MMfNM)

 

'스프링' 카테고리의 다른 글

springboot redis 연동  (0) 2023.10.11
네이버 클라우드 sens 알림톡 발송  (0) 2023.09.26
springdoc swagger 사용하기  (0) 2023.03.09
스프링부트 다국어 설정 i18n  (0) 2023.03.09
spring-validation 사용법 rest방식  (0) 2023.03.09