|
NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectcom.docomo_um.util.MessageDigest
public abstract class MessageDigest
ハッシュアルゴリズムの機能を提供するクラスです。 本クラスは、任意サイズのデータを取得して固定長のハッシュ値を出力する機能を提供します。 出力の長さはハッシュアルゴリズムに依存する固定長です。
ハッシュ値を計算するMessageDigestオブジェクトを得るためには、
getInstance(String) メソッドにハッシュアルゴリズム名を指定します。
例えば、MD5アルゴリズムを使用するMessageDigestオブジェクトを得る場合、 getInstance(MessageDigest.HASH_ALGORITHM_TYPE_MD5) を使用します。
update(byte)メソッドを使用してハッシュ値を求める入力データを追加し、 対象データを更新します。
update(byte)メソッドは何度でも呼び出すことができます。
対象のデータが全て追加された時点で、digest()メソッドを呼び出すことにより、ハッシュ値を取得します。
reset()メソッドを呼び出すことにより、対象データはリセットされ、 MessageDigestオブジェクトは初期状態に戻ります。
digest()メソッドを呼び出した後も、 resetメソッドが呼び出された後と同じ初期状態に戻ります。
ハッシュ値計算の一例を以下に示します。
FFSAccessManager ffsMgr = FFSAccessManager.getInstance();
List<FFSFile> fileList = ffsMgr.getFileList();
InputStream fis = ffsMgr.openInputStream(fileList.get(0));
try {
byte[] data = new byte[256];
MessageDigest md = MessageDigest.getInstance(MessageDigest.HASH_ALGORITHM_TYPE_MD5);
int len = 0;
while((len = fis.read(data)) >= 0) {
// 入力データを追加して、対象データを更新します。
md.update(data, 0, len);
}
// ハッシュ値の計算を終了して、ハッシュ値を取得します。
byte[] hash = md.digest();
} catch(IOException e) {
} finally {
try {
fis.close();
} catch(IOException e) {
}
}
MD5(RFC 1321)のみハッシュアルゴリズムをサポートしています。
| フィールドの概要 | |
|---|---|
static java.lang.String |
HASH_ALGORITHM_TYPE_MD5
ハッシュアルゴリズム種別の一つで、MD5(RFC 1321)を表します。 |
| メソッドの概要 | |
|---|---|
abstract byte[] |
digest()
パディングなどの最終処理を行い、ハッシュ値を取得します。 |
abstract byte[] |
digest(byte[] buf)
指定されたバイト配列を入力値として対象データを更新した後、 ハッシュ値を取得します。 |
abstract int |
digest(byte[] buf,
int off)
パディングなどの最終処理を行い、ハッシュ値を取得します。 |
java.lang.String |
getAlgorithm()
ハッシュアルゴリズム名を取得します。 |
int |
getDigestLength()
ハッシュ値の長さ(固定長)を取得します。 |
static MessageDigest |
getInstance(java.lang.String algorithm)
指定されたアルゴリズムのMessageDigestオブジェクトを生成します。 |
static boolean |
isEqual(byte[] src,
byte[] dst)
2 つのハッシュ値が等しいかどうかを比較します。 |
abstract void |
reset()
対象データをリセットします。 |
abstract void |
update(byte input)
指定されたバイトデータを入力値として対象データを更新します。 |
abstract void |
update(byte[] buf)
指定されたバイト配列を入力値として対象データを更新します。 |
abstract void |
update(byte[] buf,
int off,
int len)
指定されたバイト配列の一部を入力値として対象データを更新します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait |
| フィールドの詳細 |
|---|
public static final java.lang.String HASH_ALGORITHM_TYPE_MD5
getInstance(String),
定数フィールド値| メソッドの詳細 |
|---|
public static MessageDigest getInstance(java.lang.String algorithm)
algorithm - ハッシュアルゴリズムを指定します。
java.lang.NullPointerException - 引数 algorithm が null の場合に発生します。
java.lang.IllegalArgumentException - サポートされないアルゴリズムを指定した場合に発生します。HASH_ALGORITHM_TYPE_MD5public abstract void update(byte input)
input - 入力バイトデータを指定します。
public abstract void update(byte[] buf,
int off,
int len)
buf - 入力バイト配列を指定します。off - バイト配列における開始位置を指定します。len - バイト配列における長さを指定します。
java.lang.NullPointerException - 引数 buf が null の場合に発生します。
java.lang.ArrayIndexOutOfBoundsException - 引数 off が 0 未満の場合、 引数 len が 0 未満の場合、 off+len が配列 buf の長さを超える場合に発生します。public abstract void update(byte[] buf)
buf - 入力バイト配列を指定します。
java.lang.NullPointerException - 引数 buf が null の場合に発生します。public abstract byte[] digest()
public abstract int digest(byte[] buf,
int off)
buf - ハッシュ値を出力するバイト配列を指定します。off - バイト配列における開始位置を指定します。
java.lang.NullPointerException - 引数 buf が null の場合に発生します。
java.lang.ArrayIndexOutOfBoundsException - 引数 off が 0 未満の場合、 off + getDigestLength() が配列 buf の長さを超える場合に発生します。public abstract byte[] digest(byte[] buf)
update(byte[])実行後に digest()を実行することと同じです。
buf - 入力バイト配列を指定します。
java.lang.NullPointerException - 引数 buf が null の場合に発生します。public abstract void reset()
public final int getDigestLength()
ハッシュ値の長さ(固定長)はアルゴリズムに依存します。
public final java.lang.String getAlgorithm()
public static boolean isEqual(byte[] src,
byte[] dst)
src - 比較する一方のハッシュ値を指定します。dst - 比較するもう一方のハッシュ値を指定します。
java.lang.NullPointerException - 引数 src、dst のいずれかまたは両方が null の場合に発生します。
|
Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved. | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||