티스토리 뷰

java.security.InvalidKeyException: Illegal key size 오류로 인해 문제가 발생을 했을겁니다.


암호화 테스트 중 java.security.InvalidKeyException: Illegal key size 오류가 났다.

byte[] keyData = key.getBytes();

SecretKey secureKey = new SecretKeySpec(keyData, "AES");

Cipher c = Cipher.getInstance("AES/CBC/PKCS5PADDING");

c.init(Cipher.DECRYPT_MODE, secureKey, new IvParameterSpec(IV.getBytes("UTF-8")));

 

byte[] byteStr = Base64.decodeBase64(str.getBytes());

SHA256은 그냥 바로 되던데, AES256은 오류가 난다. 오류 코드를 검색해보면 바로 해결방법이 나오지만, 왜그런지 해결이 안됬다. 몇번의 삽질 끝에 원인을 찾았는데, 컴파일하는 jdk버전이 다른 버젼으로 맞춰져있었다... 이런 삽질은 고만 해야할텐데...




해결방법은 간단한데, 미국에서 일정 이상 암호화 기술은 수출금지를 시켰단다. 그래서 필요한 파일만 다운받아 사용하면 되는 것이다. 수출 금지인데 다운받으면 바로 해결되는 것도 좀 이상하긴 한데... 오라클 홈페이지에 가면 jar파일이 있는데 jdk 버전별로 다운 받아서 넣어주자. jdk가 설치된 경로 밑에 jre/lib/security 로 찾아가서 다운받은 파일을 압축풀면 나오는 local_policy.jar, US_export_policy.jar 파일 두개를 덮어써주면 된다.




다운로드 경로


Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 6


http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html




Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7


http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html




Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8


http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

댓글
댓글쓰기 폼
광고위치
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
37,689
Today
182
Yesterday
258
링크
«   2018/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
글 보관함