首先添加引用命名空间
using System.Security.Cryptography;
1、计算字符串的Md5
namespace _01MD5
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个字符串:");
string msg = Console.ReadLine();
string md5 = Md5Encrypt(msg);
Console.WriteLine(md5);
Console.WriteLine("Ok");
Console.ReadKey();
}
private static string Md5Encrypt(string msg)
{
MD5 md5 = MD5.Create();//创建一个MD5对象
//2.把字符串便成为一个byte[]
byte[] Buffer = System.Text.Encoding.UTF8.GetBytes(msg);
//3.讲一个bye[]通过MD5计算得到一新的byte[],新的btey[]就是计算mnd5后的结果
byte[] md5Buffer = md5.ComputeHash(Buffer);
md5.Clear();
//4.将计算后的结果直接显示为字符串
StringBuilder sb = new StringBuilder();
for (int i = 0; i < md5Buffer.Length; i++)
{
sb.Append(md5Buffer[i].ToString("x2"));
}
return sb.ToString();
}
}
}
2、计算文件的md5值
private static string Md5EncryptFromFile(string path)
{//path为传入的文件的路径
MD5 md5 = MD5.Create();
using (FileStream fs = File.OpenRead(path))
{
byte[] md5Buffer = md5.ComputeHash(fs);
md5.Clear();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < md5Buffer.Length; i++)
{
sb.Append(md5Buffer[i].ToString("x2"));
}
return sb.ToString();
}
}