MD5加密

  MD5是一種散列函數算法,用MD5進行的加密不可逆,因此是一種經常使用的安全的加密方法。算法

MD5加密步驟安全

1.獲得要加密數據的字節流ide

 1)若是是文件直接獲得文件流函數

 2)若是是字符串,使用Encodingui

2.建立MD5對象加密

3.調用其computeHash方法,將字節流做爲參數,返回長度爲16的字節流spa

4.將byte[16]變成字符串.net

 1)將每個字節用兩個十六進制數顯式出來
 2)利用for循環獲得每個字節
 3)使用ToString("x2")方法(ToString(「x2」)目的是獲取兩位16進制數)code

示例代碼:orm

兩個命名空間:

MD5:using System.Security.Cryptography

Encoding:using System.Text

       static void Main(string[] args)
        {
            string pwd = "wangyixuan";
            string md5pwd = GetMD5(pwd );
            Console.WriteLine(md5pwd );
            Console.ReadKey();
        }
        static string GetMD5(string str)
        {

            byte[] oldStr = Encoding.GetEncoding("gb2312").GetBytes(str );//1.獲取字節流
            StringBuilder sb = new System.Text.StringBuilder();
            using (MD5 md5 = MD5.Create())//2.建立MD5對象  或使用MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            {
byte[] b =md5 .ComputeHash (oldStr );//3.獲得長度爲16的字節流 for (int i = 0; i < b.Length ; i++) { sb.Append(b[i].ToString("x2"));//4.將字節流變成字符串 } } return sb.ToString(); }

方法二

            string pwd = "wangyixuan";
            byte[] bStart = Encoding.Default.GetBytes(pwd);
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] bEnd = md5.ComputeHash(bStart);
            string result = BitConverter.ToString(bEnd);
            Console.WriteLine(result );

方法三:在ASP.net中的MD5加密,命名空間:using System.Web.Security

public static string Md5(string str, int code)
    {
        //str = System.Web.HttpUtility.UrlEncode(str);   
        if (code == 16) //16位MD5加密(取32位加密的9~25字符)   
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
        }
        else//32位加密   
        {
            return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
        }
    }
相關文章
相關標籤/搜索