HashAlgorithm.ComputeHash Method (Byte[])


Computes the hash value for the specified byte array.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

public byte[] ComputeHash(
	byte[] buffer


Type: System.Byte[]

The input to compute the hash code for.

Return Value

Type: System.Byte[]

The computed hash code.

Exception Condition

buffer is null.


The object has already been disposed.

The following example computes the MD5 hash value of a string and returns the hash as a 32-character, hexadecimal-formatted string. The hash string created by this code example is compatible with any MD5 hash function (on any platform) that creates a 32-character, hexadecimal-formatted hash string.

using System;
using System.Security.Cryptography;
using System.Text;

namespace MD5Sample
    class Program
        static void Main(string[] args)
            string source = "Hello World!";
            using (MD5 md5Hash = MD5.Create())
                string hash = GetMd5Hash(md5Hash, source);

                Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

                Console.WriteLine("Verifying the hash...");

                if (VerifyMd5Hash(md5Hash, source, hash))
                    Console.WriteLine("The hashes are the same.");
                    Console.WriteLine("The hashes are not same.");

        static string GetMd5Hash(MD5 md5Hash, string input)

            // Convert the input string to a byte array and compute the hash.
            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));

            // Create a new Stringbuilder to collect the bytes
            // and create a string.
            StringBuilder sBuilder = new StringBuilder();

            // Loop through each byte of the hashed data 
            // and format each one as a hexadecimal string.
            for (int i = 0; i < data.Length; i++)

            // Return the hexadecimal string.
            return sBuilder.ToString();

        // Verify a hash against a string.
        static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
            // Hash the input.
            string hashOfInput = GetMd5Hash(md5Hash, input);

            // Create a StringComparer an compare the hashes.
            StringComparer comparer = StringComparer.OrdinalIgnoreCase;

            if (0 == comparer.Compare(hashOfInput, hash))
                return true;
                return false;


// This code example produces the following output:
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top