com.nttdocomo.util
クラス MessageDigest

Object
  |
  +--com.nttdocomo.util.MessageDigest

public class MessageDigest
extends Object

メッセージダイジェストを求めるためのクラスです。 任意のバイトデータからハッシュ値を計算します。 出力の長さはメッセージダイジェストのアルゴリズムに依存する固定長です。

メッセージダイジェストを計算するMessageDigestオブジェクトを得るためには、 getInstance(String algorithm) メソッドにメッセージダイジェストのアルゴリズム名を指定します。 例えば、MD5アルゴリズムを使用するMessageDigestオブジェクトを得る場合、 getInstance("MD5") を使用します。

updateメソッドを使用してメッセージダイジェストを求める入力データを追加し、 ダイジェストを更新します。 updateメソッドは何度でも呼び出すことができます。 digestメソッドを呼び出すことにより、ダイジェストの計算が終了します。

resetメソッドを呼び出すことにより、ダイジェストの計算はリセットされ、 MessageDigestオブジェクトは初期状態に戻ります。 digestメソッドを呼び出した後も、 resetメソッドが呼び出された後と同じ初期状態に戻ります。

ミニマムスペック:

導入されたバージョン:
DoJa-3.0

メソッドの概要
 byte[] digest()
          パディングなどの最終処理を行い、ダイジェストを取得します。
 byte[] digest(byte[] buf)
          指定されたバイト配列を入力値としてダイジェストを更新した後、 ダイジェストを取得します。
 int digest(byte[] buf, int off, int len)
          パディングなどの最終処理を行い、ダイジェストを取得します。
 String getAlgorithm()
          ダイジェストのアルゴリズム名を取得します。
 int getDigestLength()
          ダイジェストの長さをバイト数で取得します。
static MessageDigest getInstance(String algorithm)
          指定されたアルゴリズムのMessageDigestオブジェクトを生成します。
static boolean isEqual(byte[] src, byte[] dst)
          2 つのダイジェストが等しいかどうかを比較します。
 void reset()
          ダイジェストをリセットします。
 String toString()
          このダイジェストの文字列表現を取得します。
 void update(byte input)
          指定されたバイトデータを入力値としてダイジェストを更新します。
 void update(byte[] buf)
          指定されたバイト配列を入力値としてダイジェストを更新します。
 void update(byte[] buf, int off, int len)
          指定されたバイト配列の一部を入力値としてダイジェストを更新します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getInstance

public static MessageDigest getInstance(String algorithm)
指定されたアルゴリズムのMessageDigestオブジェクトを生成します。

パラメータ:
algorithm - メッセージダイジェストのアルゴリズムを指定します。
戻り値:
指定されたアルゴリズムのMessageDigestオブジェクトを返します。
例外:
NullPointerException - 引数 algorithm が null の場合に発生します。
IllegalArgumentException - サポートされないアルゴリズムを指定した場合に発生します。

update

public void update(byte input)
指定されたバイトデータを入力値としてダイジェストを更新します。

パラメータ:
input - 入力バイトデータを指定します。

update

public void update(byte[] buf,
                   int off,
                   int len)
指定されたバイト配列の一部を入力値としてダイジェストを更新します。

パラメータ:
buf - 入力バイト配列を指定します。
off - バイト配列における開始位置を指定します。
len - バイト配列における長さを指定します。
例外:
NullPointerException - 引数 buf が null の場合に発生します。
ArrayIndexOutOfBoundsException - 引数 off が 0 未満の場合、 引数 len が 0 未満の場合、 off+len が配列 buf の長さを超える場合に発生します。

update

public void update(byte[] buf)
指定されたバイト配列を入力値としてダイジェストを更新します。

パラメータ:
buf - 入力バイト配列を指定します。
例外:
NullPointerException - 引数 buf が null の場合に発生します。

digest

public byte[] digest()
パディングなどの最終処理を行い、ダイジェストを取得します。 この呼び出しの後、ダイジェストはリセットされます。

戻り値:
ダイジェスト値をバイト配列として返します。

digest

public int digest(byte[] buf,
                  int off,
                  int len)
パディングなどの最終処理を行い、ダイジェストを取得します。 ダイジェスト値は、引数の配列に格納されます。 この呼び出しの後、ダイジェストはリセットされます。 引数 len がダイジェストの長さよりも大きい場合、 配列中のダイジェストの長さを超える部分は変更されません。

パラメータ:
buf - ダイジェスト値を出力するバイト配列を指定します。
off - バイト配列における開始位置を指定します。
len - バイト配列における長さを指定します。
戻り値:
bufに格納されたバイト数を返します。
例外:
NullPointerException - 引数 buf が null の場合に発生します。
ArrayIndexOutOfBoundsException - 引数 off が 0 未満の場合、 引数 len が 0 未満の場合、 off+len が配列 buf の長さを超える場合に発生します。
ArrayIndexOutOfBoundsException - 引数 len がダイジェストの長さよりも小さい場合に発生します。

digest

public byte[] digest(byte[] buf)
指定されたバイト配列を入力値としてダイジェストを更新した後、 ダイジェストを取得します。 この呼び出しの後、ダイジェストはリセットされます。

update(buf)実行後に digest()を実行することと同じです。

パラメータ:
buf - 入力バイト配列を指定します。
戻り値:
ダイジェスト値をバイト配列として返します。
例外:
NullPointerException - 引数 buf が null の場合に発生します。

reset

public void reset()
ダイジェストをリセットします。


toString

public String toString()
このダイジェストの文字列表現を取得します。
"MD5 Message Digest, <initialized>" のようなアルゴリズム名と状態を表す文字列表現を返します。 ただし、機種依存であり、そのフォーマットは規定されていません。

オーバーライド:
クラス Object 内の toString
戻り値:
このダイジェストの文字列表現を返します。

getDigestLength

public final int getDigestLength()
ダイジェストの長さをバイト数で取得します。

戻り値:
ダイジェストの長さをバイト数で返します。

getAlgorithm

public final String getAlgorithm()
ダイジェストのアルゴリズム名を取得します。

戻り値:
ダイジェストのアルゴリズム名を返します。

isEqual

public static boolean isEqual(byte[] src,
                              byte[] dst)
2 つのダイジェストが等しいかどうかを比較します。

パラメータ:
src - 比較する一方のダイジェストを指定します。
dst - 比較するもう一方のダイジェストを指定します。
戻り値:
ダイジェストが等しい場合にはtrueを返します。 そうでない場合にはfalseを返します。
例外:
NullPointerException - 引数 src、dst のいずれかまたは両方が null の場合に発生します。


NTT DoCoMo,Inc.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。