モジュール java.base
パッケージ java.security

クラスMessageDigest

java.lang.Object
java.security.MessageDigestSpi
java.security.MessageDigest

public abstract class MessageDigest extends MessageDigestSpi
このMessageDigestクラスは、SHA-1やSHA-256などのメッセージ・ダイジェスト・アルゴリズムの機能を提供します。 メッセージ・ダイジェストは、任意サイズのデータを取得して固定長のハッシュ値を出力する安全な一方向のハッシュ機能です。

MessageDigestオブジェクトが初期化を開始します。 データは、それを介してupdateメソッドを使用して処理されます。 resetメソッドを呼び出すことにより、任意の時点でダイジェストをリセットできます。 更新対象のデータがすべて更新された時点で、digestメソッドの1つを呼び出すことにより、ハッシュ計算を終了する必要があります。

digestメソッドは、指定回数の更新に対して1回呼び出すだけで済みます。 digestがコールされると、MessageDigestオブジェクトは初期化状態にリセットされます。

Cloneableインタフェースは、自由に実装できます。 クライアント・アプリケーションは、CloneNotSupportedExceptionのクローニングおよびキャッチを試行することで、クローニング性をテストできます:


 MessageDigest md = MessageDigest.getInstance("SHA-256");

 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");
 }
 

使用する実装例が複製可能でない場合でも、ダイジェストの数が前もってわかっているときには、いくつかのインスタンスを生成することによって、中間的なダイジェストを計算できます。

このクラスは、歴史的な事情からMessageDigestSpiクラスから拡張された抽象クラスになっていることに注意してください。 アプリケーションの開発者は、MessageDigestクラスで定義されたメソッドだけに配慮してください。スーパー・クラスのすべてのメソッドは、メッセージ・ダイジェスト・アルゴリズムの独自の実装を提供する必要がある暗号サービス・プロバイダで使用されることを想定しています。

Javaプラットフォームの実装は、すべて次の標準のMessageDigestアルゴリズムをサポートする必要があります。

  • SHA-1
  • SHA-256
これらのアルゴリズムについては、Javaセキュリティ標準アルゴリズム名仕様の「MessageDigestセクション」を参照してください。 サポートされているその他のアルゴリズムについては、実装のリリース・ドキュメントを参照してください。

導入されたバージョン:
1.1
関連項目: