Javaで特定のファイルのMD5チェックサムを取得するにはどうすればよいですか? Apache CommonのDigestUtils.md5Hexユーティリティを使用するにはどうすればよいですか?

公開: 2021-08-28
Javaで特定のファイルのMD5チェックサムを取得するにはどうすればよいですか?コモンズを使用する-コーデックのDigestUtils.md5Hex

エンタープライズアプリケーションのセキュリティを強化することは、どの組織にとっても最大の課題です。

この実際の生産シナリオを考えてみましょう。

  1. ファイルからreads the valueアプリケーションがあります
  2. ファイル値に基づいて、追加/削除/実行などperforms some operationsを実行します
  3. このアプリケーションを実稼働環境にデプロイしました
  4. 許可されていunauthorized personがあなたの知らないうちにそのファイルchanges the valueはどうなりますか?
  5. アプリケーションsimply gets new valueし、 unexpected outcomeを引き起こす可能性のあるロジックを実行します
  6. そのファイルに対してMD5チェックサムを有効にしている場合could have created an exception you could have prevented disaster

MD5チェックサムとは何ですか?

ファイルのMD5チェックサムは128-bit valueであり、ファイルのフィンガープリントのようなものです。 これは、ファイルとその整合性制御の両方を比較するのに役立ちます。

別のファイルで同じ値を取得することはほぼ不可能です。 このチュートリアルでは、特定のファイルのMD5値を作成して返す単純なJavaプログラムを作成します。 私たちの場合、それはindex.phpファイルです。

始めましょう:

ステップ1

パブリッククラスCrunchifyGetMD5ForFile.java作成します

ステップ2

以下の2つのMaven依存関係をプロジェクトのpom.xmlファイルにインポートします。 プロジェクトをMavenプロジェクトに変換するためのチュートリアル。

commons-codecおよびcommons-ioライブラリを使用しています。

ステップ-3

DigestUtils.md5Hexユーティリティを使用してMD5チェックサムを作成し、結果をコンソールに出力します。

DigestUtils.md5Hex => encodeHexの実装

これが完全なプログラムです。

クラスcrunchifyGetMd5ForFile.javaを作成します

上記のプログラムをJavaアプリケーションとして実行するだけで、次のような結果が表示されます。

IntelliJ IDEAコンソールの結果:

実行時にこのMD5チェックサムをどのように使用して、ファイルの整合性を検証しますか?

実行時にこのMD5チェックサムを、MySQL、Oracleなどのy0urデータベースに格納されている値と比較できます。

同じことを達成できる方法は他にもたくさんありますが、これについては今後のチュートリアルで説明します。