网上看到很多人用C#可以很容易实现MD5加密,因为.NET框架本身就提供有方法:
string MD5 = FormsAuthentication.HashPasswordForStoringInConfigFile(inputString, "MD5");
需要添加
using System.Web.Security;
如果是WinForm程序,需要引用 System.Web。
这样很容易对一个字符串进行MD5加密,但很多人不明白网上的那些MD5文件校验器是怎样对一个文件进行MD5加密计算的。其实用C#很容易做出来,基本原理是读取文件流,.NET中提供有对文件流进行计算的方法,以下是源码:
private void btnEncryption_Click(object sender, EventArgs e) { if (!File.Exists(txtPath.Text)) { MessageBox.Show("文件不存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MD5 md5 = MD5.Create(); using (FileStream fs = File.OpenRead(txtPath.Text)) { string s = string.Empty; byte[] b = md5.ComputeHash(fs); for (int i = 0; i < b.Length; i++) { s += b[i].ToString("x2"); } txtResult.Text = s; } md5.Clear(); }
这就是一个很简单的文件MD5值校验器。在读取大文件时比较慢,可能会造成假死,可以自己进行扩展,用多线程的方式进行读取,并加入进度条。
源码下载: