LANGUAGE/!$%!% ERROR NOTE 2017. 11. 2. 11:02

Java

AES256

AES128은 16바이트의 Key를, AES192은 24바이트의 Key를, AES256은 32바이트의 Key를 사용한다.

1. Error (에러)

java.security.InvalidKeyException: Illegal key size or default parameters

또는

Unsupported keysize or algorithm parameters.

2. Problem (문제)

자바는 기본적으로 암호화키를 128비트(16바이트)까지 사용할 수 있도록 제한되어있다.

그 이유는 미국 수출 통상법에 의해 제한이 걸린 것이라고 한다.

하지만, 제한을 풀 수 있다.

3. Solved (해결)

1. 사용하는 JDK의 버전에 맞춰서, 사이트에 들어가서 Accept License Agreement를 체크하고 다운받자.

2. 다운받은 파일의 압축을 해제후, 아래 경로에 덮어씌운다. 

(다시 제한을 걸고 싶을 때를 대비하여 해당 폴더를 백업해도 좋다.)

{JAVA_HOME}/jre/lib/security

4. reference (참조)

- Java JCE(Java Cryptography Extension): http://kwonnam.pe.kr/wiki/java/jce