namespace _01.MD5加密
{
class Program
{
static void Main(string[] args)
{
//MD5加密就是给想要的密码或者其它字符加密
//如果字符串被加密成MD5值之后,是不可逆的.
//字符串123 的MD5 64位加密形式是 202cb962ac59075b964b07152d234b70
Console.WriteLine("请输入需要加密的字符串:");
string input = Console.ReadLine();
string str=GetMD5(input);
Console.WriteLine("输入的值为:{0},加密后的值为:{1}.",input,str);
Console.ReadKey();
}
public static string GetMD5(string input)
{
//创建MD5对象
MD5 md5=MD5.Create(); //通过Create()方法模拟一个MD5对象出来
//在加密之前我们需要将字符串转换成字节数组
byte[] buffer=Encoding.Default.GetBytes(input);
//开始加密
byte[] md5Buffer = md5.ComputeHash(buffer);
//将字节数组转换成字符串,理论上有三种方式:
//1. 将字节数组中每个元素按照指定的编码格式解析成字符串
//2.直接将数组ToString(); //这会输出命名空间的
//3.将字节数组中的每一个元素ToString();
//我们采用第三种
//return Encoding.Default.GetString(md5Buffer); //将字节数组转换成字符串
string str = null;
for (int i = 0; i < md5Buffer.Length; i++)
{
str += md5Buffer[i].ToString("x2"); //在ToString();方法的参数中加个x就会将十进制转换成16进制
}
return str;
}
}
}
ToSting();
ToString();方法的括号中可以加很多参数,用以转各种各样的格式.
详情查阅 笔记ToString(),方法的参数详解 02.ToString()方法详解