O .NET já tem embutido um hasher MD5, mas ele gera array de bytes, e não aquela string hexadecimal bonitinha (ex. 7285a29ee745d94a6335d0d986438bad).

Segue então uma classezinha foguete que faz isso:

public static class CalculadoraHash

{

public static string CalcularMD5 (string caminho)

{

FileStream fs = new System.IO.FileInfo (caminho).OpenRead ();

try

{

MD5 md5 = new MD5CryptoServiceProvider ();

// Constrói a string final convertendo cada byte para hex

// e colocando numa string

string resultado = "";

foreach (byte b in md5.ComputeHash (fs)) {

resultado += b.ToString ("x2");

}

return resultado;

}

finally

{

fs.Close ();

}

}

}
Anúncios