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(); } }