{{category C#}} オーバーロードされるスタティックメソッドGetMD5Valueを3つ持つクラス。 GetMD5Valueは引数をひとつ取り、文字列を返すスタティックメソッド。 * 文字列引数:その文字列が存在するファイルパスの場合、そのファイルのMD5値を返す。そうでなければ、その文字列自体のMD5を返す。 * バイト配列引数:GetMD5Value(strings s)から呼び出される。バイト配列のMD5値を返す。 * ファイルストリーム引数:GetMD5Value(strings s)から呼び出される。ファイルストリームのMD5値を返す。 いずれのメソッドも、エラーが発生したらエラーのToString()を返す。 using System; using System.IO; using System.Security.Cryptography; using System.Text; public class MD5Hasher { public static string GetMD5Value(string target) { string message; try { if (File.Exists(target)) { using (FileStream fs = new FileStream(target, FileMode.Open, FileAccess.Read)) { message = GetMD5Value(fs); } } else { message = GetMD5Value(Encoding.Default.GetBytes(target)); } } catch(Exception e) { message = e.ToString(); } return message; } public static string GetMD5Value(byte[] target) { byte[] hashedBytes = new byte[16]; MD5 md5Hasher = MD5.Create(); StringBuilder message = new StringBuilder(); try { hashedBytes = md5Hasher.ComputeHash(target); for (int i=0; i