I needed to create an MD5 hash of a string today that could be sent along with a web service request to a third party application. I’ve never done this before using .NET but it was exteremely simple! Here is the code:
/// <summary> /// Gets the MD5 hash value for the passed in value parameter /// </summary> /// <param name="value">The string value to hash</param> /// <param name="upperCase">Indicates whether or not the return value should be upper case</param> /// <returns>The MD5 hash of the value parameter</returns> public static string GetMD5Hash(string value, bool upperCase) { // Instantiate new MD5 Service Provider to perform the hash System.Security.Cryptography.MD5CryptoServiceProvider md5ServiceProdivder = new System.Security.Cryptography.MD5CryptoServiceProvider(); // Get a byte array representing the value to be hashed and hash it byte[] data = System.Text.Encoding.ASCII.GetBytes(value); data = md5ServiceProdivder.ComputeHash(data); // Get the hashed string value StringBuilder hashedValue = new StringBuilder(); for (int i = 0; i < data.Length; i++) hashedValue.Append(data[i].ToString("x2")); // Return the string in all caps if desired if (upperCase) return hashedValue.ToString().ToUpper(); return hashedValue.ToString(); }