문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
|
java:jce [2012/04/04 18:17] kwon37xi 새로 만듦 |
java:jce [2014/05/13 18:17] (현재) kwon37xi |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== Java JCE(Java Cryptography Extension) ====== | ====== Java JCE(Java Cryptography Extension) ====== | ||
| + | |||
| + | ====== AES ====== | ||
| + | * [[http:// | ||
| ===== AES 키 등록시 다음과 같은 오류 발생 ===== | ===== AES 키 등록시 다음과 같은 오류 발생 ===== | ||
| 줄 7: | 줄 10: | ||
| Illegal key size or default parameters. | Illegal key size or default parameters. | ||
| </ | </ | ||
| - | * 다음 파일을 받아서 | + | 이는, 기본 JCE가 128비트만 지원해서 16바이트(128bit) 키만을 사용할 수 있는 상황에서 16바이트보다 큰 키를 사용했을 때 발생한다. |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| + | * AES 128bit : 16bit 키 지원 | ||
| + | * AES 256bit : 32bit 키 지원 | ||
| + | |||
| + | 다음 파일을 받아서 '' | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ===== AES 키 생성 ===== | ||
| + | * http:// | ||
| + | |||
| + | 다음과 같이 AES 256bit 키를 생성하였다. 128bit로 생성하려면 256 대신 128을 사용한다. | ||
| + | [[http:// | ||
| + | |||
| + | <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(" | ||
| + | generator.init(256); | ||
| + | |||
| + | Key key = generator.generateKey(); | ||
| + | |||
| + | |||
| + | byte[] keyBytes = key.getEncoded(); | ||
| + | String base64EncodedKey = Base64.encodeBase64URLSafeString(keyBytes); | ||
| + | System.out.println(String.format(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||