Java E-Sign
java security package Serise
#1 Signature
Revision History
Version History 업데이트일 주요내용
V 1.0 2013.06.10 first Commit
darkandark90@gmail.com 2
왜! signature에 관심갖나?
darkandark90@gmail.com 3
언젠가는 내 손으로 Active X 안 쓰고 공인인
증서 연동하려는 사람 ..;)
java로 x.509 들어가기 위한 준비
Signature
디지털 서명에 이용되는 클래스
1. 생성
2. 초기화
3. 데이터 처리
4. 서명
5. 검증
darkandark90@gmail.com 4
1. 생성
Signature sig = Signature.getInstance("MD5WithRSA");
darkandark90@gmail.com 5
제공되는 알고리즘을 이용해서 signature객체
를 생성한다.
SHA1withDSA
SHA1withRSA
SHA256withRSA
2-1. 초기화
initSign / initVerify
서명 전 초기화 시 - > initSign
검증 전 초기화 시 - > initVerify
darkandark90@gmail.com 6
2-2. 초기화
• sig.initSign(keyPair.getPrivate());
RSA 쌍으로 생성한 key중에 개인키를 이용해서
서명한다.
darkandark90@gmail.com 7
3. 데이터 처리
데이터를 암호화 하기 위해서
update 메소드를 사용한다.
byte[] data = "jins".getBytes("UTF8");
sig.update(data);
darkandark90@gmail.com 8
4. 서명
sign 메소드
sig.initSign(keyPair.getPrivate());
byte[] signatureBytes = sig.sign();
darkandark90@gmail.com 9
sign메소드를 이용해서 서명이 추가된 데이터를 얻을 수 있다.
5. 검증
sig.initVerify(keyPair.getPublic());
sig.verify(signatureBytes);
darkandark90@gmail.com 10
검증 메소드는 데이터가 일치할 경우
true를 리턴한다.
※ 데이터를 암호화할 때는 개인키를
사용하기 때문에 서명초기화 시에는
개인키를 사용하고 검증 초기화시에는
공개키를 사용했다.
출력
• System.out.println("서명:n" + new
BASE64Encoder().encode(signatureBytes));
darkandark90@gmail.com 11
Referecnce
순번 url 또는 문서 제목
1 http://docs.oracle.com/javase/7/docs/api/java/security/Signature.html#update(byte)
2 professional java securuty - 정보문화사
darkandark90@gmail.com 12

Java sign