.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
以上。