Skip to main content

C#でファイルのMD5ハッシュを計算する方法

.NET FrameworkにMD5計算のクラスを内蔵しているため、そのクラスを利用するとMD5ハッシュの計算が簡単にできます。対象ファイルに対してComputeHashメソッドを呼び出して結果バイナリを16進数に変換すると一般的に使われているファイルのMD5ハッシュになります。

class Program
{
  static void Main(string[] args)
  {
    if (args.Length < 1)
    {
      // パラメータがない場合プログラムの利用方法を表示する
      Console.WriteLine("usage: FileMD5.exe <filename>");
    }
    else
    {
      // .NET FrameworkのMD5計算クラスを作成する
      MD5 md5 = MD5.Create();
  
      // 計算結果を保存するバイナリ配列を宣言する
      byte[] bytes;

      // 対象ファイルを開い、ComputeHashメソッドを呼び出してMD5計算を行う
      using (FileStream fs = System.IO.File.Open(args[0], FileMode.Open, FileAccess.Read))
      {
        bytes = md5.ComputeHash(fs);
      }
 
      // 計算結果を16進数の文字列に変換する
      StringBuilder md5str = new StringBuilder();
      foreach (byte b in bytes) md5str.Append(b.ToString("x2"));

      // 結果をコンソールに出力する
      Console.WriteLine(md5str.ToString());
    }
  }
}

テスト:

D:\FileMD5\bin\Debug>FileMD5.exe f:\Softwares\putty.exe
7a0dfc5353ff6de7de0208a29fa2ffc9

以上。

Jingwood

北海道の田舎で暮らしているプログラマーです。最近山登りにハマりました。

Leave a Reply

Your email address will not be published. Required fields are marked *