[java] 자바에서 Jasypt 사용 방법

이번 포스팅에서는 자바에서 데이터 암호화 라이브러리인 Jasypt를 사용하는 방법에 대해 알아보겠습니다.

Jasypt란?

Jasypt는 Java Simplified Encryption(자바 간단한 암호화)의 약자로, 데이터를 암호화하고 복호화하는 기능을 제공하는 라이브러리입니다.

사용 방법

1. 의존성 추가

먼저, 프로젝트의 의존성에 Jasypt를 추가해야 합니다. pom.xml 파일에 아래와 같은 의존성을 추가합니다.

<dependencies>
  ...
  <dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt</artifactId>
    <version>1.9.3</version>
  </dependency>
  ...
</dependencies>

2. 암호화 및 복호화

Jasypt를 사용하여 데이터를 암호화하고 복호화하는 방법은 다음과 같습니다.

import org.jasypt.util.text.BasicTextEncryptor;

public class Encryption {
  
  public static void main(String[] args) {
    String message = "Hello, Jasypt!";
    String password = "mySecretKey";
    
    // 암호화
    BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
    textEncryptor.setPassword(password);
    String encryptedMessage = textEncryptor.encrypt(message);
    System.out.println("Encrypted message: " + encryptedMessage);
    
    // 복호화
    String decryptedMessage = textEncryptor.decrypt(encryptedMessage);
    System.out.println("Decrypted message: " + decryptedMessage);
  }
}

위의 예제에서는 mySecretKey라는 비밀키로 Hello, Jasypt!라는 메시지를 암호화한 후 다시 복호화하는 과정을 보여주고 있습니다.

3. 속성 파일에서 암호화된 값 사용하기

자바의 프로퍼티 파일에 암호화된 값을 저장하고 이를 사용하는 방법은 아래와 같습니다.

import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;

public class PropertiesEncryption {

  public static void main(String[] args) {
    StandardPBEConfig config = new StandardPBEConfig();
    config.setPassword("mySecretKey");
    
    EncryptableProperties props = new EncryptableProperties(config);
    
    try (FileInputStream fis = new FileInputStream("application.properties")) {
      props.load(fis);
    } catch (IOException e) {
      e.printStackTrace();
    }
    
    String dbUrl = props.getProperty("db.url");
    String dbUsername = props.getProperty("db.username");
    String dbPassword = props.getProperty("db.password");
    
    System.out.println("DB URL: " + dbUrl);
    System.out.println("DB Username: " + dbUsername);
    System.out.println("DB Password: " + dbPassword);
  }
}

위의 예제는 application.properties 파일에서 암호화된 값(db.url, db.username, db.password)을 복호화하여 사용하는 과정을 보여주고 있습니다.

결론

Jasypt를 사용하면 간단하게 자바에서 데이터를 암호화하고 복호화하는 기능을 구현할 수 있습니다. 이를 통해 데이터 보안을 강화하고 민감한 정보를 안전하게 다룰 수 있습니다.

참고 자료