//杨中科老师
/// <summary>
/// 把字符转换成MD5
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string GetMD5Hash(String str)
{
//把字符串转换成字节数组
byte[] buffer = Encoding.Default.GetBytes(str);
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
//md5加密
byte[] cryptBuffer = md5.ComputeHash(buffer);
string s = "";
//把每一个字节 0-255,转换成两位16进制数
for (int i = 0; i < cryptBuffer.Length; i++)
{
//大X转黄的是大写字母,小X转换的是小写字母
s += cryptBuffer[i].ToString("x2");
}
return s;
}
赵小虎老师
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace _02调用类库实现MD5值的计算
{
class Program
{
static void Main(string[] args)
{
#region 计算字符串的MD5值
//while (true)
//{
// Console.WriteLine("请输入一个字符串");
// string msg = Console.ReadLine();
// string md5String = GetMD5FromString(msg);
// Console.WriteLine(md5String);
//}
#endregion
#region 计算文件的Md5
string path = @"d:\spring.xls";
Console.WriteLine(GetMD5FromFile(path));
Console.ReadLine();
#endregion
}
/// <summary>
/// 计算字符串的MD5值
/// </summary>
/// <param name="msg">要计算的字符串</param>
/// <returns></returns>
private static string GetMD5FromString(string msg)
{
//1.创建一个用来计算MD5值的类的对象
using (MD5 md5 = MD5.Create())
{
//把字符串转换为byte[]
//注意:如果字符串中包含汉字,则这里会把汉字使用utf-8编码转换为byte[],当其他地方
//计算MD5值的时候,如果对汉字使用了不同的编码,则同样的汉字生成的byte[]是不一样的,所以计算出的MD5值也就不一样了。
byte[] msgBuffer = Encoding.Default.GetBytes(msg);
//2.计算给定字符串的MD5值
//返回值就是就算后的MD5值,如何把一个长度为16的byte[]数组转换为一个长度为32的字符串:就是把每个byte转成16进制同时保留2位即可。
byte[] md5Buffer = md5.ComputeHash(msgBuffer);
md5.Clear();//释放资源
StringBuilder sbMd5 = new StringBuilder();
for (int i = 0; i < md5Buffer.Length; i++)
{
sbMd5.Append(md5Buffer[i].ToString("x2"));
}
return sbMd5.ToString();
}
}
private static string GetMD5FromFile(string path)
{
using (MD5 md5 = MD5.Create())
{
using (FileStream fsRead = File.OpenRead(path))
{
byte[] bytes = md5.ComputeHash(fsRead);
md5.Clear();
StringBuilder sbMd5 = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
sbMd5.Append(bytes[i].ToString("X2"));
}
return sbMd5.ToString();
}
}
}
}
}
本人转自:http://www.nbcoder.net/thread-271-1-1.html