사용자 도구

사이트 도구


java:jce

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
java:jce [2012/04/04 18:19]
kwon37xi
java:jce [2014/03/10 19:56]
kwon37xi [AES 키 등록시 다음과 같은 오류 발생]
줄 8: 줄 8:
 </code> </code>
 이는, 기본 JCE가 128비트만 지원해서 16바이트(128bit) 키만을 사용할 수 있는 상황에서 16바이트보다 큰 키를 사용했을 때 발생한다. 아래 패치를 통해 256비트까지 확장해서 32바이트 키를 사용할 수 있게 한다. 이는, 기본 JCE가 128비트만 지원해서 16바이트(128bit) 키만을 사용할 수 있는 상황에서 16바이트보다 큰 키를 사용했을 때 발생한다. 아래 패치를 통해 256비트까지 확장해서 32바이트 키를 사용할 수 있게 한다.
 +
 +  * AES 128bit : 16bit 키 지원
 +  * AES 256bit : 32bit 키 지원
  
 다음 파일을 받아서 ''$JAVA_HOME/jre/lib/security''의 파일을 덮어쓴다. 다음 파일을 받아서 ''$JAVA_HOME/jre/lib/security''의 파일을 덮어쓴다.
줄 17: 줄 20:
 ===== AES 키 생성 ===== ===== AES 키 생성 =====
   * http://www.java2s.com/Tutorial/Java/0490__Security/AESKeygenerator.htm 참조   * http://www.java2s.com/Tutorial/Java/0490__Security/AESKeygenerator.htm 참조
 +
 +다음과 같이 AES 256bit 키를 생성하였다. 128bit로 생성하려면 256 대신 128을 사용한다.
 +[[http://commons.apache.org/codec/|Apache Commons Codec]]의 Base64가 필요하다.
 +
 +<code java>
 +
 +import java.security.Key;
 +
 +import javax.crypto.KeyGenerator;
 +
 +import org.apache.commons.codec.binary.Base64;
 +
 +public class AESKeyGenerator {
 + public static void main(String[] args) throws Exception {
 + KeyGenerator generator = KeyGenerator.getInstance("AES");
 + generator.init(256);
 +
 + Key key = generator.generateKey();
  
  
 + byte[] keyBytes = key.getEncoded();
 + String base64EncodedKey = Base64.encodeBase64URLSafeString(keyBytes);
 + System.out.println(String.format("Key : %s Length : %d", base64EncodedKey, keyBytes.length));
 + }
 +}
 +</code>
java/jce.txt · 마지막으로 수정됨: 2014/05/13 18:17 저자 kwon37xi