|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.security.MessageDigestSpi
java.security.MessageDigest
public abstract class MessageDigest
이 MessageDigest 클래스는, MD5 또는 SHA 등의 메세지 다이제스트 알고리즘의 기능을 제공합니다. 메세지 다이제스트는, 임의 사이즈의 데이터를 취득해 고정장의 해시치를 출력하는 안전한 한방향의 해시 기능입니다.
MessageDigest 객체는, 초기화되어 기동됩니다. 데이터는, MessageDigest 객체를 개입시켜 update
메소드를 사용해 처리됩니다. reset
메소드를 호출하는 것으로, 임의의 시점에서 다이제스트를 리셋 할 수 있습니다. 갱신 대상의 데이터가 모두 갱신된 시점에서,digest
메소드의 1 개를 호출하는 것으로, 해시 계산을 종료할 필요가 있습니다.
digest
메소드는, 지정 회수의 갱신에 대해서 1 회 호출하는 것만으로 끝납니다. digest
메소드의 호출이 종료한 뒤, MessageDigest 객체는 초기화 상태에 리셋 됩니다.
Cloneable 인터페이스는, 자유롭게 구현할 수 있습니다. 클라이언트 어플리케이션은, 복제의 생성을 시행해 CloneNotSupportedException 를 캐치 하면, 복제의 생성이 가능한가 어떤가를 조사할 수가 있습니다.
MessageDigest md = MessageDigest.getInstance("SHA"); try { md.update(toChapter1); MessageDigest tc1 = md.clone(); byte[] toChapter1Digest = tc1.digest(); md.update(toChapter2); ...등 } catch (CloneNotSupportedException cnse) { throw new DigestException("couldn't make digest of partial content"); }
사용하는 구현예가 복제 가능하지 않은 경우에서도, 다이제스트의 수를 미리 알고 있을 때는, 몇개의 인스턴스를 생성하는 것에 의해, 중간적인 다이제스트를 계산할 수 있습니다.
이 클래스는, 역사적인 사정으로부터 MessageDigest
클래스를 상속한 abstract 클래스가 되어 있습니다. 어플리케이션의 개발자는,MessageDigest
클래스에서 정의된 메소드인 만큼 배려해 주세요. 슈퍼 클래스의 모든 메소드는, 메세지 다이제스트 알고리즘의 독자적인 구현을 제공할 필요가 있는 암호 서비스 프로바이더로 사용되는 것을 상정하고 있습니다.
DigestInputStream
,
DigestOutputStream
생성자 의 개요 | |
---|---|
protected |
MessageDigest (String algorithm)
지정된 알고리즘명을 사용해 메세지 다이제스트를 작성합니다. |
메소드의 개요 | |
---|---|
Object |
clone ()
구현이 복제 가능한 경우는 복제를 돌려줍니다. |
byte[] |
digest ()
패딩등의 최종 처리를 행해 해시 계산을 완료합니다. |
byte[] |
digest (byte[] input)
지정된 바이트 배열을 사용해 다이제스트에 대해서 최종의 갱신을 실행한 뒤, 다이제스트 계산을 완료합니다. |
int |
digest (byte[] buf,
int offset,
int len)
패딩등의 최종 처리를 행해 해시 계산을 완료합니다. |
String |
getAlgorithm ()
구현의 상세하게 의존하지 않는 알고리즘을 식별하는 캐릭터 라인을 돌려줍니다. |
int |
getDigestLength ()
다이제스트의 길이를 바이트로 돌려줍니다. |
static MessageDigest |
getInstance (String algorithm)
지정된 다이제스트 알고리즘을 구현하는 MessageDigest 객체를 돌려줍니다. |
static MessageDigest |
getInstance (String algorithm,
Provider provider)
지정된 다이제스트 알고리즘을 구현하는 MessageDigest 객체를 돌려줍니다. |
static MessageDigest |
getInstance (String algorithm,
String provider)
지정된 다이제스트 알고리즘을 구현하는 MessageDigest 객체를 돌려줍니다. |
Provider |
getProvider ()
이 메세지 다이제스트 객체의 프로바이더를 돌려줍니다. |
static boolean |
isEqual (byte[] digesta,
byte[] digestb)
2 개의 다이제스트가 동일한지 어떤지를 비교합니다. |
void |
reset ()
재사용을 위해서(때문에) 다이제스트를 리셋 합니다. |
String |
toString ()
이 메세지 다이제스트 객체의 캐릭터 라인 표현을 돌려줍니다. |
void |
update (byte input)
지정된 바이트 데이터를 사용해 다이제스트를 갱신합니다. |
void |
update (byte[] input)
지정된 바이트 배열을 사용해 다이제스트를 갱신합니다. |
void |
update (byte[] input,
int offset,
int len)
지정된 바이트 데이터의 배열을 사용해, 지정된 오프셋(offset)로부터 개시해 다이제스트를 갱신합니다. |
void |
update (ByteBuffer input)
지정된 ByteBuffer 를 사용해 다이제스트를 갱신합니다. |
클래스 java.security. MessageDigestSpi 로부터 상속된 메소드 |
---|
engineDigest , engineDigest , engineGetDigestLength , engineReset , engineUpdate , engineUpdate , engineUpdate |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
생성자 의 상세 |
---|
protected MessageDigest(String algorithm)
algorithm
- 다이제스트 알고리즘의 표준명.
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조메소드의 상세 |
---|
public static MessageDigest getInstance(String algorithm) throws NoSuchAlgorithmException
이 메소드는, 최우선의 Provider 로부터 순서에, 등록을 마친 시큐리티 Provider 의 리스트를 횡단(traverse) 합니다. 지정된 알고리즘을 지원하는 최초의 Provider 의 MessageDigestSpi 구현을 캡슐화하는 새로운 MessageDigest 객체가 돌려주어집니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구하는 알고리즘의 이름
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
NoSuchAlgorithmException
- 지정된 알고리즘의 MessageDigestSpi 구현을 지원하는 Provider 가 존재하지 않는 경우Provider
public static MessageDigest getInstance(String algorithm, String provider) throws NoSuchAlgorithmException , NoSuchProviderException
지정된 프로바이더의 MessageDigestSpi 구현을 캡슐화하는 새로운 MessageDigest 객체가 돌려주어집니다. 지정한 프로바이더는, 시큐리티 프로바이더 리스트에 등록할 필요가 있습니다.
등록이 끝난 프로바이더의 리스트는,Security.getProviders()
메소드 경유로 취득할 수 있습니다.
algorithm
- 요구하는 알고리즘의 이름
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더명
NoSuchAlgorithmException
- 지정된 프로바이더로 지정된 알고리즘의 MessageDigestSpi 구현이 없는 경우
NoSuchProviderException
- 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
IllegalArgumentException
- 프로바이더의 이름이 null 나 빈 상태(empty)의 경우Provider
public static MessageDigest getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
지정된 Provider 객체의 MessageDigestSpi 구현을 캡슐화하는 새로운 MessageDigest 객체가 돌려주어집니다. 지정된 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.
algorithm
- 요구하는 알고리즘의 이름
알고리즘의 표준명에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조provider
- 프로바이더
NoSuchAlgorithmException
- 지정된 Provider 객체로 지정된 알고리즘의 MessageDigestSpi 구현이 없는 경우
IllegalArgumentException
- 지정된 프로바이더가 null 의 경우Provider
public final Provider getProvider()
public void update(byte input)
input
- 다이제스트를 갱신하는 바이트public void update(byte[] input, int offset, int len)
input
- 바이트의 배열offset
- 바이트의 배열에서의 개시 오프셋(offset)len
- 사용하는 바이트수 (offset
로부터 개시)public void update(byte[] input)
input
- 바이트의 배열public final void update(ByteBuffer input)
input.position()
위치로부터 시작되는 input.remaining()
바이트가 사용됩니다. 종료시에, 버퍼의 위치는 리밋트에 동일해집니다만, 리밋트는 변경되지 않습니다.
input
- ByteBufferpublic byte[] digest()
public int digest(byte[] buf, int offset, int len) throws DigestException
buf
- 계산 끝난 다이제스트의 출력처 버퍼offset
- 출력 버퍼에 다이제스트의 포함을 개시하는 위치를 나타내는 오프셋(offset)len
- 다이제스트를 할당하는 버퍼의 바이트수
buf
에 포함된 바이트수
DigestException
- 에러가 발생했을 경우public byte[] digest(byte[] input)
update(input)
메소드를 호출해 input 배열을 update
메소드에 건네준 뒤,digest()
메소드를 호출합니다.
input
- 다이제스트의 완료전에 갱신하는 대상의 입력
public String toString()
Object
내의 toString
public static boolean isEqual(byte[] digesta, byte[] digestb)
digesta
- 비교할 뿐의 다이제스트digestb
- 비교하는 것 외 (분)편의 다이제스트
public void reset()
public final String getAlgorithm()
public final int getDigestLength()
public Object clone() throws CloneNotSupportedException
MessageDigestSpi
내의 clone
CloneNotSupportedException
- Cloneable
를 지원하고 있지 않는 구현으로 불려 갔을 경우Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.