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