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