zoukankan      html  css  js  c++  java
  • MD5加密方法

    public static string GetMD5(string str)  //自己写的
            {
                //创建MD5对象
                MD5 md5= MD5.Create();
                //开始加密
                //需要将字符串转换成字节数组
                byte[] buffer = Encoding.Default.GetBytes(str);
                byte[] MD5Buffer = md5.ComputeHash(buffer);
                //将字符数组转换成字符串
                //字符数组-------字符串
                //第一种:将字节数组中每个元素按照指定的编码格式解析成字符串
           //MD5str = Encoding.Default.GetString(MD5Buffer);//此实例中无法将字符数组转换为字符串
    //第二种:直接将数组ToString() //将字节数组中的每个元素ToString() string MD5str=string.Empty; for (int i = 0; i < MD5Buffer.Length; i++) { MD5str += MD5Buffer[i].ToString("x2");//转换成32进制 } return MD5str; }
    using System;                            //MSDN库的
    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.");
                    }
                }
            }
            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++)
                {
                    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.
    

      

  • 相关阅读:
    IOS之Block的应用-textFeild的回调应用
    KVC与KVO的不同
    git
    perl读取excel
    Linux用户管理
    Linux软件包的管理
    linux系统学习(二)
    linux系统学习(一)
    js模版渲染
    Discuz核心函数的解析
  • 原文地址:https://www.cnblogs.com/souliid/p/5656188.html
Copyright © 2011-2022 走看看