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 애플리케이션에서는 이를 자동으로 복호화하여 사용할 수 있습니다. 이 설정은 민감한 정보를 보호하면서도 애플리케이션이 쉽게 접근할 수 있도록 합니다.