키생성
// 128, 196, 256 등 비트수에 맞게 패스워드 키 정의
String keyString = "1234567890123456";
SecretKeySpec key = new SecretKeySpec( keyString.getBytes(), "AES");
운용모드 ( 상세한 설명은 요기로 : http://blog.kangwoo.kr/13 )
ECB : 일정한 블록을 동일한 키로 암호화
CBC : 이전 암호블록과 현재 블록을 XOR, 첫 블록은 이전블록이 없으므로 IV와 XOR.
PCBC : 이전 원본 블록과 현재 블록을 XOR, 첫 블록은 CBC와 동일.
CFB : IV를 암호화한뒤 원본 블록과 XOR하고, XOR된 블록이 다음 블록으로 전달.
OFB : IV가 암호화되어 블록과 XOR하고, 암호화된 IV값만 다음 블록으로 전달되어 다시 암호화.
CTR : IV와 카운터 값을 사용해 암호화하고 블록을 XOR한값. 각 블록은 카운터만 변경됨.
String iv = "1234567890123456";
IvParameterSpec param = new IvParameterSpec( iv.getBytes() );
암호
byte[] buffer = 내 데이터;
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding" );
cipher.init( Cipher.ENCRYPT_MODE, key, param );
byte[] encripted = cipher.doFinal( buffer );
복호
cipher.init( Cipher.DECRYPT_MODE, key, param );
byte[] decripted = cipher.doFinal( encripted );
'프로그래밍 > JAVA' 카테고리의 다른 글
힙 덤프 명령 (0) | 2017.02.23 |
---|---|
jni 관련~ (2) | 2014.04.16 |
[OSGi] 서비스 등록 및 해제 (0) | 2014.03.21 |
[eclipse] eclipse 4 platform (0) | 2014.03.17 |
Annotation (0) | 2014.03.15 |
[swt] 이벤트 (0) | 2014.03.14 |
[eclipse] Extention Points (0) | 2014.03.14 |
[eclipse] simple plug-in example (0) | 2014.03.13 |
Apache HttpClient 관련 정리 (0) | 2014.03.11 |
[JAVA TV] MHP 배경이미지 처리 (0) | 2013.12.27 |