首页 > 代码库 > md5类

md5类

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.");                }                else                {                    Console.WriteLine("The hashes are not same.");                }            }            Console.ReadLine();        }        static string GetMd5Hash(MD5 md5Hash, string input)        {            // Convert the input string to a byte array and compute the hash.            byte[] data =http://www.mamicode.com/ 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++)            {                sBuilder.Append(data[i].ToString("x2"));            }            // 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;            }            else            {                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./*System.Security.Cryptographypublic abstract class MD5 : HashAlgorithmpublic static MD5 Create()Create()创建 MD5 哈希算法的默认实现的实例。public byte[] ComputeHash(byte[] buffer)public virtual byte[] GetBytes(string s)Encoding.ASCII.GetBytes(inputString)用于以ASCII方式将一个字符串转换成一个字节数组, 原因是ComputeHash方法只接收Byte[]参数,后面的内容就是将加密后的Byte[]连成一个字符串, AppendFormat中的格式字符串{0:x2}是指将数组中每一个字符格式化为十六进制,精度为2 */

 

md5类