[Spring] Jasypt로 설정 암호화 방법
- 코딩/Spring
- 2023. 1. 19.
[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를 이용하여 설정 파일의 암호화와 복호화를 적용하면 보안성을 높일 수 있습니다. 암호화된 값을 복호화하기 위해서는 비밀번호를 알아야 하기 때문에 보안성이 더욱 강화됩니다.
'코딩 > Spring' 카테고리의 다른 글
[Linux] Linux에서 SpringBoot jar 파일 서비스 등록해 자동실행 되게 하기(+ 서비스 관련 기본 명령어들) (0) | 2023.01.03 |
---|---|
[Spring]Jpa insert default value (0) | 2022.12.14 |
[Spring] JPA native query 사용시 dto mapping 방법 (0) | 2022.11.29 |
[Spring] JPA In 절 사용하기 (1) | 2022.11.29 |
[Spring] DB커넥션풀과 Hikari CP란? (0) | 2022.11.23 |