AES256 암호화시 java.security.InvalidKeyException: Illegal key size 해결 방안

JAVA의 기본 정책으로 AES128 암호화 방식까지만 사용 가능하다. (미 통상법에 의해 자국내에서만 AES256 방식 허용)
그래서 AES256 방식으로 암호화하게 되면 아래와 같은 Exceptioin이 발생한다.
java.security.InvalidKeyException: Illegal key size

이를 해결하기 위해 $JAVA_HOME/jre/lib/security 경로에 아래의 unlimited strength crypto file을 덮어써야한다.
local_policy.jar, US_export_policy.jar

* 해당 파일 다운로드 경로
  - Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 (JDK7)
  - Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 (JDK8)

OpenJDK로 설치한 서버에서는 문제가 없어 확인해보니 정책이 아래와 같았다.
OracleJDK, OpenJDK v8 이전 - AES128 까지 허용 (모듈 교체 필요 O)
OpenJDK v8 이후 - AES256 까지 허용 (모듈 교체 필요 X)


JDK 1.8u151 버전? 부터 방법 변경

1) $JAVA_HOME/jre/lib/security 경로로 이동
2) java.security 파일 오픈.
3) crypto.policy 프로퍼티 수정. (limited -> unlimited)

$JAVA_HOME/jre/lib/security/policy 경로에 limited, unlimited 디렉토리로 구분되어져 있다.
crypto.policy 프로퍼티에 설정한 디렉토리명에 따라 전환되는듯 하다.


'Development > Java' 카테고리의 다른 글

Garbage Collection 과정  (0) 2018.04.28
Garbage Collection 용어 정리  (0) 2018.04.26
반복문 성능 비교  (0) 2017.07.27
List 중복 제거  (0) 2017.07.13
Reflection 클래스 정보  (0) 2017.07.12

+ Recent posts