Outputs a 40 character hexadecimal hash string using the MD5 algorithm.
private string ToHash(string source)
{
byte[] bytes;
char[] c;
byte b;
//using (SHA1 m = new System.Security.Cryptography.SHA1Managed())
using (MD5 m = System.Security.Cryptography.MD5.Create())
{
bytes = m.ComputeHash(System.Text.UTF8Encoding.UTF8.GetBytes(source));
c = new char[bytes.Length * 2];
for (int i = 0; i < bytes.Length; ++i)
{
b = ((byte)(bytes[i] >> 4));
// replace 0x57 with 0x37 to output uppercase
c[i * 2] = (char)(b > 9 ? b + 0x57 : b + 0x30);
b = ((byte)(bytes[i] & 0xF));
// replace 0x57 with 0x37 to output uppercase
c[i * 2 + 1] = (char)(b > 9 ? b + 0x57 : b + 0x30);
}
}
return new string(c);
}