|
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);
...etc.
} 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)
指定されたバイトデータの配列を使って、指定されたオフセットから開始してダイジェストを更新します。 |
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 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照| メソッドの詳細 |
|---|
public static MessageDigest getInstance(String algorithm)
throws NoSuchAlgorithmException
このメソッドは、最優先の Provider から順に、登録済みのセキュリティー Provider のリストをトラバースします。指定されたアルゴリズムをサポートする最初の Provider の MessageDigestSpi 実装をカプセル化する新しい MessageDigest オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
algorithm - 要求するアルゴリズムの名前アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
NoSuchAlgorithmException - 指定されたアルゴリズムの MessageDigestSpi 実装をサポートする Provider が存在しない場合Provider
public static MessageDigest getInstance(String algorithm,
String provider)
throws NoSuchAlgorithmException,
NoSuchProviderException
指定されたプロバイダの MessageDigestSpi 実装をカプセル化する新しい MessageDigest オブジェクトが返されます。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
algorithm - 要求するアルゴリズムの名前アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ名
NoSuchAlgorithmException - 指定されたプロバイダに指定されたアルゴリズムの MessageDigestSpi 実装がない場合
NoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
IllegalArgumentException - プロバイダの名前が null か空の場合Provider
public static MessageDigest getInstance(String algorithm,
Provider provider)
throws NoSuchAlgorithmException
指定された Provider オブジェクトの MessageDigestSpi 実装をカプセル化する新しい MessageDigest オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
algorithm - 要求するアルゴリズムの名前アルゴリズムの標準名については、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照provider - プロバイダ
NoSuchAlgorithmException - 指定された Provider オブジェクトに指定されたアルゴリズムの MessageDigestSpi 実装がない場合
IllegalArgumentException - 指定されたプロバイダが null の場合Providerpublic final Provider getProvider()
public void update(byte input)
input - ダイジェストを更新するバイト
public void update(byte[] input,
int offset,
int len)
input - バイトの配列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 - 出力バッファーにダイジェストの格納を開始する位置を示すオフセット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 内の cloneCloneNotSupportedException - Cloneable をサポートしていない実装で呼び出された場合Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。