MD5加密处理
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(); } } }
上述代码执行后得到的结果如下:
但行好事,莫问前程!