자바에서 java.security.Cipher 클래스를 사용하여 AES, DES와 같은
암호화 알고리즘을 사용하는 경우
간혹 "java.security.InvalidKeyException:illegal Key Size" error를
보게 되는데 이를 피할 수 있는 방법이 있다.
얼마전 AES 알고리즘을 사용하여 암호화/복호화 처리를 할 필요가
있었는데, 표준으로 인정받고 있는 128bit 키 방식 말고 256bit 키를
사용하고자 하였으나 InvalidKeyException이 발생하고,
스마트폰에서 추출한 데이터(ad file) unpack을 위해서 abe.jar를
활용하던 도중 256bit 암호화 처리로 인해 InvalidKeyException이
발생 하였다.
요지는 JRE에서 기본으로 제공하는 security 라이브러리의 정책에서
발생하는 문제이다.
JCE Unlimited Strength Jurisdiction policy Files을 별도로
다운받아 적용하면 해결 된다.
다운로드 : http://java.sun.com/javase/downloads/index.jsp
JRE 다운로드 링크를 활용해서 별도로 받아야 한다.
다운받은 jar 들(local_policy.jar, US_export_policy.jar)을
$JAVA_HOME$/jre/lib/security 하위에 복사해 넣는다.
※ 이미 파일이 존재 한다면, 덮어 쓰도록 하자.
(필자의 경우 같은 파일인줄 알고 반나절을 낭비 했다.)
이렇게 하면, 정상적으로 해결이 가능 하다.
댓글 없음:
댓글 쓰기