Jasypt를 이용한 이메일, 비밀번호 암호화

김학준·2024년 6월 17일
0

게시판

목록 보기
17/44

pom.xml

<dependency>
	<groupId>org.jasypt</groupId>
	<artifactId>jasypt-spring31</artifactId>
	<version>1.9.3</version>
</dependency>

src/main/resources/context-beans.xml

<bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.EnvironmentPBEConfig">
	<!-- 사용할 암호화 알고리즘 -->
	<property name="algorithm" value="PBEWithMD5AndDES" />
	<!-- PBE (패스워드 기반 암호화) 암호 설정 -->
	<property name="password" value="password" />
</bean>

이 설정을 통해 암호화 설정 정보를 담은 EnvironmentPBEConfig 객체가 생성됩니다.

  • algorithm: 사용할 암호화 알고리즘. PBEWithMD5AndDES는 MD5 해시와 DES 암호화 알고리즘을 사용하는 패스워드 기반 암호화(PBE) 알고리즘입니다.
  • password: 암호화에 사용할 패스워드. 이 패스워드는 암호화된 값을 복호화할 때에도 사용됩니다.
<bean id="encryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
	<property name="config" ref="encryptorConfig" />
</bean>

이 설정을 통해 암호화 및 복호화를 수행할 StandardPBEStringEncryptor 객체가 생성됩니다. StandardPBEStringEncryptor는 앞서 설정한 암호화 알고리즘과 패스워드를 사용하여 문자열을 암호화 및 복호화합니다.

  • config: 암호화 설정을 참조
<bean class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
	<constructor-arg ref="encryptor" />
	<property name="locations" value="classpath:email.properties" />
</bean>
  • ref="encryptor": 암호화 및 복호화를 수행할 StandardPBEStringEncryptor 객체를 주입
  • locations: 암호화된 속성 값을 포함하는 프로퍼티 파일의 위치를 지정

src/main/resources/email.properties

email.username=ENC(...)
email.password=ENC(...)

ENC(...)로 표시된 부분은 암호화된 값이며 Spring 애플리케이션에서는 이를 자동으로 복호화하여 사용할 수 있습니다. 이 설정은 민감한 정보를 보호하면서도 애플리케이션이 쉽게 접근할 수 있도록 합니다.

0개의 댓글