|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.MessageDigestSpi | +--java.security.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"); }
使用する実装例が複製可能でない場合でも、ダイジェストの数が前もってわかっているときには、いくつかのインスタンスを生成することによって、中間的なダイジェストを計算することができます。
このクラスは、歴史的な事情から KeyPairGeneratorSpi
クラスを継承した 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,
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)
指定されたオフセットから開始して、指定されたバイト配列を使用してダイジェストを更新します。 |
クラス java.security.MessageDigestSpi から継承したメソッド |
engineDigest,
engineDigest,
engineGetDigestLength,
engineReset,
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
algorithm
- 要求するアルゴリズムの名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照public static MessageDigest getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
algorithm
- 要求するアルゴリズムの名前。アルゴリズムの標準名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダの名前Provider
public 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 byte[] digest()
public int digest(byte[] buf, int offset, int len) throws DigestException
buf
- 計算済みのダイジェストの出力先バッファoffset
- 出力バッファにダイジェストの格納を開始する位置を示すオフセットlen
- ダイジェストを割り当てるバッファのバイト数buf
に格納されたバイト数public byte[] digest(byte[] input)
input
- ダイジェストの完了前に更新する対象の入力public String 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
Cloneable
をサポートしていない実装に対して呼ばれた場合
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |