jaspyt 라이브러리

hoyong.eom·2024년 9월 22일
0

스프링

목록 보기
56/59
post-thumbnail

jaspyt

토이 프로젝트를 하는 와중에 jaspyt라는 라이브러리를 알게되어 jaspyt 라이브러리와 간단한 사용법을 정리하려고 한다.

jaspyt는 Java Simplified Encryption 라이브러리로서, 공식홈페이지에 아래와 같이 설명하고 있었다.

출처 : http://www.jasypt.org/

간단하게 암호화/복호화 자바 라이브러리인데, 구글링을 해보면 applicayion.yml 파일에 암호화된 데이터를 저장하기 위해서 사용한다.

    busStop:
      apiKey: ENC(AUw9mJhN8RLlXXe2dO6ZL8m2Tynqa0neV99nYpxZgDbo2wUjrKCzKp4WbdiPIg3GVk/6z0oar39YYR5b3HFyOAZ7v9p65Wrssj2rau0cqGjIJnCj9rDMCLRDdtHI491rkmQ9B4Fw8qg=)
      url:

나도 jaspyt 라이브러리를 알게된 계기와 사용법 또한 git repository에 올라가는 소스 정보중 application.yml 파일에 중요 정보가 노출되지 않고 암호화된 데이터로 저장하기 위함이었다.

서론이 길었고.. 사용법을 정리해보자.

사용법

정확한 사용법은 https://github.com/ulisesbocchio/jasypt-spring-boot#use-you-own-custom-encryptor
에 매우 상세하게 나와있다.

이 포스팅의 목적은 내가 기억하고.. 정말 copy and paste로 간단하게 사용하기 위한 분들을 위함이다.

Configuration 설정

@Configuration
public class JasyptConfig {
  
  @Value("${jasypt.encryptor.key}")
  String encryptorKey;
 
  @Bean("jasyptStringEncryptor")
  public StringEncryptor stringEncryptor(){
      PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
      SimpleStringPBEConfig config = new SimpleStringPBEConfig();
      config.setPassword(encryptorKey); // 암호화 키 값
      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;
  }
}

VM 옵션 추가

암호화 데이터를 applicatio.yml에 추가

https://www.devglan.com/online-tools/jasypt-online-encryption-decryption 사이트에서 데이터를 키 값을 이용해서 암호화할 수 있다.

암호화된 정보를 ENC(암호화 데이터)로 넣어주면 된다.

참고

https://medium.com/@byeongsoon94/spring-boot-yaml-%ED%8C%8C%EC%9D%BC%EC%9D%98-%EC%95%94%ED%98%B8%ED%99%94%EC%99%80-jasypt-passwod-%EB%85%B8%EC%B6%9C-%EB%B0%A9%EC%A7%80-9995e1489262
https://www.devglan.com/online-tools/jasypt-online-encryption-decryption
http://www.jasypt.org/

0개의 댓글