MD5加密處理
阿新 • • 發佈:2018-12-31
MD5 加密後的位數一般為兩種,16 位與 32 位。16 位實際上是從 32 位字串中,取中間的第 9 位到第 24 位的部分
using System; using System.Security.Cryptography; using System.Text; namespace _04MD5加密 { internal class Program { private static void Main(string[] args) { string tStr = MD5Encrypt("MD5加密處理"); Console.WriteLine(tStr); Console.ReadKey(); } /// <summary> /// MD5加密 /// </summary> /// <param name="input">需要加密的字串</param> /// <returns></returns> public static string MD5Encrypt(string input) { return MD5Encrypt(input, new UTF8Encoding()); } /// <summary> /// md5加密16|32位 /// </summary> /// <param name="input">需要加密的字串</param> /// <param name="length">加密位數,可選16位與32位</param> /// <returns></returns> public static string MD5Encrypt(string input, int length) { string res = MD5Encrypt(input, new UTF8Encoding()); if (length == 16) { res = res.Substring(8, 16); } return res; } /// <summary> /// MD5加密 /// </summary> /// <param name="input">需要加密的字串</param> /// <param name="encode">字元的編碼</param> /// <returns></returns> public static string MD5Encrypt(string input, Encoding encode) { if (string.IsNullOrEmpty(input)) { return null; } MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); byte[] data = md5Hasher.ComputeHash(encode.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } } }
上述程式碼執行後得到的結果如下: