Integrating jasypt with Spring's application configuration infrastructure

 

프로퍼티 파일IP주소, 아이디, 패스워드 등의 정보를 암호화하여 기입하고 JASYPT 라이브러리를 통해 암호화 값을 비교한다.

 

 

1. 적용환경

 - JDK 1.5.0_22

 - org.springframework 3.0.6.RELEASE

 - MAVEN

 

 

2. 라이브러리

 - Spring 3.0x Simplified Encryption JASYPT 1.9.0

 - icu4j 49.1 (com.ibm.icu.text.Normalizer)

 

 

JASYPT 설정을 마치고 Apache Tomcat을 통해 Spring Context를 로드하는 중에 java.text.Normalizer 패키지를 찾는 경우가 발생했다. 해당 패키지는 Normalizer (Java Platform SE 6) 이상에 포함되어 있는 패키지이다.

 

해당 패키지 말고 icu4j 라이브러리를 추가하면 된다라고 친절하게도 Exception을 떨궈준다. 1.5.x 이하의 버전 이라면 icu4j 라이브러리를 추가한다.

 

 

3. 파일첨부

jasypt-1.9.0.jar jasypt-spring3-1.9.0.jar icu4j-49.1.jar

 


4. 관련 URL

 - JASYPT : http://www.jasypt.org/

 - Spring 3.0x Simplified Encryption JASYPT : http://www.jasypt.org/spring3.html

 - Jasypt Maven Repository : http://mvnrepository.com/artifact/org.jasypt/jasypt

 - icu4j Maven Repository : http://mvnrepository.com/artifact/com.ibm.icu/icu4j

 

 

5. 라이센스

 - http://www.jasypt.org/license.html

 - The Apache Software License, Version 2.0

 - http://www.apache.org/licenses/LICENSE-2.0

 

 

Jasypt 사이트에서 가이드하고 있는 내용에는 PBEWithMD5AndDES 로 적용하도록 안내하고 있다. PBE방식과 함께 적용되는 MD5 방식이었지만, MD5가 해독이 가능하다는 얘기를 들은바 있다.

 

그래서 PBEWithSHAAnd128BitRC4 등의 PBEWithSHA* 알고리즘으로 암호화 하려고 시도 했지만 불가능했다. 이에 관련하여 상세한 정보가 있다면 댓글 바란다.

 

그리고 SHA512와는 틀리게 암호화 시 항상 다른 값을 만들어줬다. 그리고 이 항상 달리 만들어 주는 값으로도 JASYPT 라이브러리를 통해 값을 대조해볼때 알아서 인식을 했다. 깊이 들어가지는 않았지만 암호화 할때와 암호화값을 대조할때에도 특정한 조건이 형성이 되어 있을거라 예상된다.

 

 

감사합니다 :)

 

Posted by 리트모스
: