using System;using System.Security.Cryptography;using System.Text;namespace _099_MD5加密{ class Program { static void Main(string[] args) { //密文: //MD5 //查询结果: //md5(123, 32) = 202cb962ac59075b964b07152d234b70 // ("x"): 202cb962ac5975b964b7152d234b70 // ("x2") 202cb962ac59075b964b07152d234b70 //md5(123, 16) = ac59075b964b0715 Console.WriteLine("请输入进行MD5加密的字符串:"); string input = Console.ReadLine(); string output = GetMD5(input); Console.WriteLine(output); Console.ReadKey(); } /// <summary> /// 将字符串进行MD5加密 /// </summary> /// <param name="str">即将要加密的字符串</param> /// <returns>返回已经加密好的字符串</returns> public static string GetMD5(string str) { //创建MD5对象,但是MD5是抽象类 MD5 md5 = MD5.Create(); //开始加密 使用ComputeHash()方法 //需要将字符串转化为字节数组 byte[] buffer = Encoding.UTF8.GetBytes(str); //返回一个加密好的字节数组 byte[] MD5Buffer = md5.ComputeHash(buffer); //return Encoding.UTF8.GetString(MD5Buffer); 会被按照指定的(编码格式)解析成字符串,需求的是不用解析的 //将字节数组转换成字符串 //字节数组----字符串 //1、将每个数组中的每个元素按照指定的(编码格式)解析成字符串 Encoding.UTF8.GetString(MD5Buffer); //2、直接将数组ToString() 命名空间 //3、将字节数组中的每个元素ToString() string strmd5 = ""; for (int i = 0; i < MD5Buffer.Length; i++) { strmd5 += MD5Buffer[i].ToString("x2");//将十进制转换成十六进制 } //这样是10进制,需求的是16进制(3244185981728979115075721453575112,ac59075b964b0715) return strmd5; } }}