Java-cryptography-message-digest
Java暗号化-メッセージダイジェスト
ハッシュ関数は非常に便利であり、ほとんどすべての情報セキュリティアプリケーションで使用されています。
ハッシュ関数は、数値入力値を別の圧縮数値に変換する数学関数です。 ハッシュ関数への入力は任意の長さですが、出力は常に固定長です。
ハッシュ関数によって返される値は、*メッセージダイジェスト*または単に*ハッシュ値*と呼ばれます。 次の図は、ハッシュ関数を示しています。
Javaは、パッケージjava.securityに属する MessageDigest という名前のクラスを提供します。 このクラスは、任意の長さのメッセージをメッセージダイジェストに変換するSHA-1、SHA 256、MD5アルゴリズムなどのアルゴリズムをサポートします。
指定されたメッセージをメッセージダイジェストに変換するには、以下の手順に従ってください-
ステップ1:MessageDigestオブジェクトを作成する
MessageDigestクラスは、* getInstance()*という名前のメソッドを提供します。 このメソッドは、使用されるアルゴリズムの名前を指定するString変数を受け入れ、指定されたアルゴリズムを実装するMessageDigestオブジェクトを返します。
以下に示すように、* getInstance()*メソッドを使用してMessageDigestオブジェクトを作成します。
ステップ2:作成されたMessageDigestオブジェクトにデータを渡す
メッセージダイジェストオブジェクトを作成した後、メッセージ/データをそれに渡す必要があります。 MessageDigest クラスの* update()*メソッドを使用してこれを行うことができます。このメソッドは、メッセージを表すバイト配列を受け入れ、上記で作成したMessageDigestオブジェクトに追加/渡します。
ステップ3:メッセージダイジェストを生成する
MessageDigestクラスの* digest()*メソッドを使用してメッセージダイジェストを生成できます。このメソッドは、現在のオブジェクトのハッシュ関数を計算し、バイト配列の形式でメッセージダイジェストを返します。
ダイジェストメソッドを使用してメッセージダイジェストを生成します。
例
以下は、ファイルからデータを読み取り、メッセージダイジェストを生成して印刷する例です。
出力
上記のプログラムは、次の出力を生成します-