[Spring] Jasypt로 설정 암호화 방법

    [Spring] Jasypt로 설정 암호화 하는 방법 알아보기

    Spring 프레임워크에서 Jasypt를 이용하여 설정 파일의 암호화를 할 수 있습니다. 이를 통해 암호화된 설정 파일을 사용하여 보안성을 높일 수 있습니다. 이번 글에서는 Jasypt를 이용하여 설정 파일을 암호화하는 방법에 대해 상세하게 설명하겠습니다.

    Jasypt란?

    Jasypt는 Java 암호화 라이브러리입니다. 암호화된 데이터를 안전하게 보호하고 관리할 수 있는 다양한 기능을 제공합니다. Spring Boot에서는 Jasypt를 이용하여 설정 파일의 암호화를 지원하고 있습니다.

    Jasypt를 사용한 설정 파일 암호화 방법

    1. Jasypt 의존성 추가

    먼저, pom.xml 파일에 Jasypt 의존성을 추가해야 합니다.

    <dependency>
      <groupId>com.github.ulisesbocchio</groupId>
      <artifactId>jasypt-spring-boot-starter</artifactId>
      <version>{latest.version}</version>
    </dependency>

    2. 암호화 설정 추가

    암호화를 위한 설정을 application.yml 파일에 추가합니다.

    jasypt:
      encryptor:
        password: {strong-password} # 본인이 설정한 강력한 암호

    3. 암호화할 값 설정

    암호화할 값은 암호화 설정과 함께 application.yml 파일에 설정합니다.

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/{database-name}
        username: {database-username}
        password: ENC({password-to-encrypt})

    4. 암호화된 값 생성

    Jasypt를 이용하여 값을 암호화하려면 jasypt 명령어를 사용해야 합니다. jasypt 명령어를 실행하기 위해 Jasypt 라이브러리가 필요합니다. 먼저 Jasypt 라이브러리를 다운로드합니다.

    wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar

    다운로드한 Jasypt 라이브러리로 암호화된 값을 생성합니다.

    java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input={password-to-encrypt} password={strong-password} algorithm=PBEWithMD5AndDES
    • 1. input: 암호화할 값을 입력합니다.
    • 2. password: 사용할 암호화 알고리즘의 비밀번호를 입력합니다.
    • 3. algorithm: 사용할 암호화 알고리즘을 입력합니다.

    5. 생성된 암호화된 값 사용

    jasypt 명령어를 실행하면 암호화된 값이 출력됩니다. 출력된 값을 설정 파일에서 ENC()로 감싸서 사용합니다.

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/{database-name}
        username: {database-username}
        password: ENC({generated-encrypted-password})

    6. 애플리케이션 실행

    이제 애플리케이션을 실행하면 암호화된 설정 파일이 로드됩니다.

    7. 참고: 암호화된 값을 복호화하는 방법

    1. Jasypt 라이브러리 다운로드
    wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
    2. 복호화할 값 입력
    $ java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input={encrypted-password} password={strong-password} algorithm=PBEWithMD5AndDES
    • 1. input: 복호화할 값을 입력합니다.
    • 2. password: 사용할 복호화 알고리즘의 비밀번호를 입력합니다.
    • 3. algorithm: 사용할 복호화 알고리즘을 입력합니다.
    3. 복호화된 값 출력

    입력한 값이 복호화되어 출력됩니다. Jasypt를 이용하여 설정 파일의 암호화와 복호화를 적용하면 보안성을 높일 수 있습니다. 암호화된 값을 복호화하기 위해서는 비밀번호를 알아야 하기 때문에 보안성이 더욱 강화됩니다.

    댓글

    Designed by JB FACTORY