下载软件后使用c#获取文件的md5码示例
很多朋友在下载文件的时候,经常会发现网站提供了md5校验码,其实这个md5码的作用就是当你下载文件好了之后,拿你下载好的文件的md5校验码,跟下载网站提供的进行比较,如果完全一致,说明你下载中文件没问题,如果校验码不一致,说明下载过程中你的文件出错了,或者是你的文件下载出错了,反正就是跟原始文件不一致。而且只要是文件不一样,md5码肯定不一样,这个是不会重复的,那么到底如何获取文件的md5码呢?下面就使用c#代码进行讲解。
//-----------------------------------------------------------------------
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.text;
using system.windows.forms;
using system.security;
using system.security.cryptography;
using system.io;
namespace md5fileform
{
public partial class md5form : form
{
public md5form()
{
initializecomponent();
}
private void btngetmd5_click(object sender, eventargs e)
{
md5 md5 = md5.create();
openfiledialog ofd = new openfiledialog();
ofd.showdialog();
filestream fs = new filestream(ofd.filename, filemode.open);
byte[] bs = md5.computehash(fs);
//获取到md5码
string md5str = bitconverter.tostring(bs).replace("-","");
messagebox.show(string.format("[{0}]的md5码为:\n{1}",ofd.filename,md5str));
}
}
}
第二个使用示例
using system;
using system.io;
using system.security.cryptography;
using system.text;
namespace test
{
public class md5code
{
/// <summary>
/// 获取文件的md5码
/// </summary>
/// <param name="filename">传入的文件名(含路径及后缀名)</param>
/// <returns></returns>
public string getmd5hashfromfile(string filename)
{
try
{
filestream file = new filestream(filename, system.io.filemode.open);
md5 md5 = new md5cryptoserviceprovider();
byte[] retval = md5.computehash(file);
file.close();
stringbuilder sb = new stringbuilder();
for (int i = 0; i < retval.length; i++)
{
sb.append(retval[i].tostring("x2"));
}
return sb.tostring();
}
catch (exception ex)
{
throw new exception("getmd5hashfromfile() fail,error:" + ex.message);
}
}
}
}
推荐阅读